private PartyState GetPartyState(PartyBase party) { if (!PartyStates.TryGetValue(party.Id, out PartyState partyState)) { partyState = new PartyState(this, party.Side == BattleSideEnum.Attacker); PartyStates[party.Id] = partyState; for (int index = 0; index < party.MemberRoster.Count; ++index) { TroopRosterElement elementCopyAtIndex = party.MemberRoster.GetElementCopyAtIndex(index); CharacterObject troop = elementCopyAtIndex.Character; if (troop != null) { partyState.RegisterTroops(troop, (elementCopyAtIndex.Number - elementCopyAtIndex.WoundedNumber)); } } } return(partyState); }
public bool ApplyDamageToPartyTroop(PartyAttackComposition attack, PartyBase party, CharacterObject troop, out float damage) { PartyState partyState = GetPartyState(party); return(partyState.ApplyDamageToTroop(attack, troop, out damage)); }
public PartyAttackComposition MakePartyAttack(PartyBase party, float consumption) { PartyState partyState = GetPartyState(party); return(partyState.MakePartyAttack(consumption)); }
public float GetPartyStrength(PartyBase party) { PartyState partyState = GetPartyState(party); return(partyState.GetCurrentStrength()); }