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);
        }
Esempio n. 2
0
 public static void RecomputeCompanionCost(ReserveCompanionStatus status, ref CompanionStatusData data)
 {
     data.cost = (status.isGiven ? null : status.definition.cost);
 }
Esempio n. 3
0
 public static void RecomputeCompanionCastValidity(PlayerStatus owner, ReserveCompanionStatus status, ref CompanionStatusData data)
 {
     data.hasResources = (ComputeCompanionCostCastValidity(owner, status) == CastValidity.SUCCESS);
 }