public void SetStatus(HeroStatus status) { if (Hero == null) { return; } if (Hero.Status == HeroStatus.RaidParty && status != HeroStatus.RaidParty) { Hero.Status = status; if (PartySlot != null) { PartySlot.ItemDroppedOut(this); } } Hero.Status = status; switch (Hero.Status) { case HeroStatus.Abbey: portrait.material = DarkestDungeonManager.GrayDarkMaterial; statusIcon.gameObject.SetActive(true); statusIcon.sprite = DarkestDungeonManager.Data.Sprites["abbey.icon_roster"]; break; case HeroStatus.Sanitarium: portrait.material = DarkestDungeonManager.GrayDarkMaterial; statusIcon.gameObject.SetActive(true); statusIcon.sprite = DarkestDungeonManager.Data.Sprites["sanitarium.icon_roster"]; break; case HeroStatus.Tavern: portrait.material = DarkestDungeonManager.GrayDarkMaterial; statusIcon.gameObject.SetActive(true); statusIcon.sprite = DarkestDungeonManager.Data.Sprites["tavern.icon_roster"]; break; case HeroStatus.Missing: portrait.material = DarkestDungeonManager.GrayDarkMaterial; statusIcon.gameObject.SetActive(true); statusIcon.sprite = DarkestDungeonManager.Data.Sprites["missing.icon_roster"]; break; case HeroStatus.RaidParty: portrait.material = portrait.defaultMaterial; statusIcon.gameObject.SetActive(true); statusIcon.sprite = DarkestDungeonManager.Data.Sprites["party.icon_roster"]; break; case HeroStatus.Available: portrait.material = portrait.defaultMaterial; statusIcon.gameObject.SetActive(false); break; default: statusIcon.gameObject.SetActive(false); portrait.material = portrait.defaultMaterial; break; } }
public void AddCharacter(ICharacter character, PartySlot slot) { var relevantList = slot == PartySlot.FrontRow ? FrontRow : slot == PartySlot.BackSeat ? BackSeat : Reserve; var limit = slot == PartySlot.FrontRow ? FrontRowLimit : slot == PartySlot.BackSeat ? BackSeatLimit : -1; if (relevantList.Count == limit) { ExitHelper.Exit( slot == PartySlot.FrontRow ? ErrorCodes.ErrorCharLimitReachedFrontrow : slot == PartySlot.BackSeat ? ErrorCodes.ErrorCharLimitReachedBackseat : ErrorCodes.ErrorCharLimitReachedReserve, "Attempted to add Character to party depsite being full"); } relevantList.Add(character); _charMap[character] = relevantList; var currentHighestPartyCount = _model.Statistics[Statistic.HighestPartyCount]; var currentPartyCount = (ulong)_charMap.Count; if (currentPartyCount > currentHighestPartyCount) { _model.Statistics.AddToStatistic(Statistic.HighestPartyCount, (uint)(currentPartyCount - currentHighestPartyCount)); } character.LvlUp(Experience); ResetCache(); }
private void OnEnable() { foreach (PartyMember partyMember in partyData.partyList) { GameObject newSlot = Instantiate(slotPrefab, transform.position, Quaternion.identity); PartySlot partySlot = newSlot.GetComponent <PartySlot>(); partySlot.AssignSlot(partyMember); partySlot.transform.parent = gameObject.transform; partySlots.Add(partySlot); } }
public PartyState(Party party, PartySlot slot, int team) { Party = party; Slot = slot; CharacterStates = new CharacterState[Party.TOTAL_ROWS][]; for (var r = 0; r < Party.TOTAL_ROWS; r++) { CharacterStates[r] = new CharacterState[Party.TOTAL_COLS]; } foreach (var character in Party.Positions) { CharacterStates[character.Row][character.Column] = new CharacterState(character.Character, team, character.Row, character.Column); } }
public WorldEntity Get(PartySlot slot) { switch (slot) { case PartySlot.Front: return Front; break; case PartySlot.Back: return Back; break; case PartySlot.Left: return Left; break; case PartySlot.Right: return Right; break; } return null; }