Exemplo n.º 1
0
    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;
        }
    }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
 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);
     }
 }
Exemplo n.º 4
0
    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);
        }
    }
Exemplo n.º 5
0
        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;
        }