API
Interface
public interface ICombatPlugin
{
// Ability execution
void ExecuteAbility(GameObject caster, AbilityEntry actionEntry,
CombatContext context);
void ApplyEffectsToTargets(CombatContext context, List<GameObject> targets);
// Type registration
void RegisterAbilityType(Type abilityType, CombatTypeInfo info);
void RegisterEffectType(Type effectType, CombatTypeInfo info);
IReadOnlyDictionary<string, CombatTypeInfo> GetRegisteredAbilityTypes();
IReadOnlyDictionary<string, CombatTypeInfo> GetRegisteredEffectTypes();
AbilityTypeBase CreateAbilityTypeInstance(string typeId);
EffectTypeBase CreateEffectTypeInstance(string typeId);
// Stat system
StatModificationBuilder Modify(GameObject target);
StatModificationBuilder Modify(StatEntity statEntity);
float GetValue(GameObject target, string statId, string propertyId);
float GetValue(StatEntity statEntity, string statId, string propertyId);
void ApplyModifier(GameObject target, StatModifierEntry statModifier);
void RemoveModifier(GameObject target, StatModifierEntry statModifier);
List<StatEntry> GetAllStatEntries();
void ClearStatEntriesCache();
StatEntry GetStatEntry(string statId);
}CombatContext
Property
Type
Description
StatModificationBuilder
Key Database Entries
AbilityEntry
StatEntry
StatModifierEntry
DamageTypeEntry / HealingTypeEntry
FactionEntry
StatusTagEntry
Abstract Base Classes
AbilityTypeBase
EffectTypeBase
StatDataAsset
AbilityDataAsset
EffectDataAsset
Events
Event
Description
Commands
Command
Description
Components
Component
Description
Usage
Last updated
Was this helpful?
