Table of Contents

Class StatCollection

Namespace
Framework.Systems.Stat
Assembly
Assembly-CSharp.dll

여러 Stat 을 보관하고 Modifier 를 관리하는 컬렉션. 한 엔티티(플레이어, 몬스터 등)의 모든 Stat 을 담는다.

public sealed class StatCollection
Inheritance
object
StatCollection

Remarks

Effect 는 Stat 을 직접 수정하지 않는다. Effect 적용 → StatModifier 추가 / Effect 종료 → StatModifier 제거 패턴을 사용한다.

Properties

All

public IReadOnlyDictionary<StatId, Stat> All { get; }

Property Value

IReadOnlyDictionary<StatId, Stat>

Methods

AddModifier(StatId, StatModifier)

Modifier 를 추가한다. Stat 이 없으면 BaseValue = 0 으로 자동 생성.

public void AddModifier(StatId id, StatModifier modifier)

Parameters

id StatId
modifier StatModifier

ClearAllModifiers()

모든 Stat 의 모든 Modifier 제거.

public void ClearAllModifiers()

ClearModifiers(StatId)

특정 Stat 의 Modifier 전체 제거.

public void ClearModifiers(StatId id)

Parameters

id StatId

Get(StatId)

StatId 로 Stat 조회. 없으면 null.

public Stat Get(StatId id)

Parameters

id StatId

Returns

Stat

GetValue(StatId)

FinalValue 직접 조회. Stat 이 없으면 0 반환.

public float GetValue(StatId id)

Parameters

id StatId

Returns

float

RemoveAllModifiers(StatId, string)

Source 가 일치하는 모든 Modifier 를 제거한다.

public int RemoveAllModifiers(StatId id, string source)

Parameters

id StatId
source string

Returns

int

RemoveModifier(StatId, string)

Source 가 일치하는 첫 번째 Modifier 를 제거한다. Effect 종료 시 Effect.Id.Value 를 Source 로 전달한다.

public bool RemoveModifier(StatId id, string source)

Parameters

id StatId
source string

Returns

bool

SetBaseValue(StatId, float)

BaseValue 를 설정한다. Stat 이 없으면 새로 생성한다.

public void SetBaseValue(StatId id, float value)

Parameters

id StatId
value float

TakeSnapshot()

현재 상태를 StatSnapshot 으로 반환한다. 저장 / 디버깅 용도. Framework 는 저장 방식을 알지 못한다.

public StatSnapshot TakeSnapshot()

Returns

StatSnapshot