private void EnqueueCompanionStatusData(PlayerStatus playerStatus, ReserveCompanionStatus companion) { CompanionStatusData companionStatusData = default(CompanionStatusData); companionStatusData.state = companion.state; companionStatusData.isGiven = companion.isGiven; CompanionStatusData data = companionStatusData; CastValidityHelper.RecomputeCompanionCastValidity(playerStatus, companion, ref data); CastValidityHelper.RecomputeCompanionCost(companion, ref data); int id = companion.definition.get_id(); if (!m_companionStatusQueue.TryGetValue(id, out Queue <CompanionStatusData> value)) { value = m_queuePool.Get(); m_companionStatusQueue.Add(id, value); } value.Enqueue(data); }
public static void RecomputeCompanionCost(ReserveCompanionStatus status, ref CompanionStatusData data) { data.cost = (status.isGiven ? null : status.definition.cost); }
public static void RecomputeCompanionCastValidity(PlayerStatus owner, ReserveCompanionStatus status, ref CompanionStatusData data) { data.hasResources = (ComputeCompanionCostCastValidity(owner, status) == CastValidity.SUCCESS); }