コード例 #1
0
    void rosterPanel_onHeroSlotBeginDragging(HeroSlot heroSlot)
    {
        var  quirks          = heroSlot.Hero.Quirks;
        bool barAllowed      = true;
        bool gamblingAllowed = true;
        bool brothelAllowed  = true;

        foreach (var quirkInfo in quirks)
        {
            if (Tavern.Activities[0].IncompatiableQuirks.Contains(quirkInfo.Quirk.Id))
            {
                barAllowed = false;
            }
            if (Tavern.Activities[1].IncompatiableQuirks.Contains(quirkInfo.Quirk.Id))
            {
                gamblingAllowed = false;
            }
            if (Tavern.Activities[2].IncompatiableQuirks.Contains(quirkInfo.Quirk.Id))
            {
                brothelAllowed = false;
            }
        }
        for (int i = 0; i < 3; i++)
        {
            barSlots[i].UpdateHeroAvailable(heroSlot.Hero, barAllowed);
            gamblingSlots[i].UpdateHeroAvailable(heroSlot.Hero, gamblingAllowed);
            brothelSlots[i].UpdateHeroAvailable(heroSlot.Hero, brothelAllowed);
        }
    }
コード例 #2
0
 public void HeroSlotBeginDragging(HeroSlot slot)
 {
     if (EventHeroSlotBeginDragging != null)
     {
         EventHeroSlotBeginDragging(slot);
     }
 }
コード例 #3
0
    public HeroSlot CreateSlot(RecruitSlot recruitSlot, HeroSlot heroSlot)
    {
        if (DarkestDungeonManager.Campaign.Heroes.Count >= DarkestDungeonManager.Campaign.Estate.StageCoach.RosterSlots)
        {
            DarkestSoundManager.PlayOneShot("event:/ui/town/character_add_full");
            return(null);
        }

        var newSlot = CreateSlot(recruitSlot.Hero);

        DarkestDungeonManager.Campaign.Heroes.Add(recruitSlot.Hero);
        var deathRecord = DarkestDungeonManager.Campaign.Estate.RecruitHero(recruitSlot.Hero);

        DarkestSoundManager.ExecuteNarration("recruit_hero", NarrationPlace.Town, recruitSlot.Hero.Class);

        if (deathRecord != null && EventHeroResurrected != null)
        {
            EventHeroResurrected(deathRecord);
        }
        else
        {
            DarkestSoundManager.PlayOneShot("event:/town/stage_coach_purchase");
        }

        if (heroSlot != null)
        {
            newSlot.RectTransform.SetSiblingIndex(heroSlot.RectTransform.GetSiblingIndex());
        }
        else
        {
            newSlot.RectTransform.SetAsLastSibling();
        }
        UpdateCapacity();
        return(newSlot);
    }
コード例 #4
0
 public void HeroSlotClicked(HeroSlot heroSlot)
 {
     if (EventHeroInspected != null)
     {
         EventHeroInspected(heroSlot.Hero, true);
     }
 }
コード例 #5
0
 void RaidPartyPanel_onDropOut(HeroSlot heroSlot)
 {
     partyMembersPrepared--;
     if (partyMembersPrepared == 3)
     {
         PartyDisassembled();
     }
 }
コード例 #6
0
 private void RaidPartySlotDropIn(HeroSlot heroSlot)
 {
     partyMembersPrepared++;
     if (partyMembersPrepared == 4)
     {
         PartyAssembled();
     }
 }
コード例 #7
0
 private void RaidPartySlotDropOut(HeroSlot heroSlot)
 {
     partyMembersPrepared--;
     if (partyMembersPrepared == 3)
     {
         PartyDisassembled();
     }
 }
コード例 #8
0
 void RaidPartyPanel_onDropIn(HeroSlot heroSlot)
 {
     partyMembersPrepared++;
     if (partyMembersPrepared == 4)
     {
         PartyAssembled();
     }
 }
コード例 #9
0
 void rosterPanel_onHeroSlotEndDragging(HeroSlot heroSlot)
 {
     for (int i = 0; i < 3; i++)
     {
         barSlots[i].UpdateAvailable();
         gamblingSlots[i].UpdateAvailable();
         brothelSlots[i].UpdateAvailable();
     }
 }
コード例 #10
0
ファイル: AbbeyWindow.cs プロジェクト: ahenrique23/GameEstudo
 private void RosterPanelHeroSlotEndDragging(HeroSlot heroSlot)
 {
     for (int i = 0; i < 3; i++)
     {
         cloisterSlots[i].UpdateAvailable();
         transeptSlots[i].UpdateAvailable();
         penanceSlots[i].UpdateAvailable();
     }
 }
コード例 #11
0
 public void MarkSlots(RaidPartySlot partySlot, HeroSlot heroSlot)
 {
     if (SelectedHero == null || SelectedHero.Hero.RosterId == heroSlot.Hero.RosterId)
     {
         if (RaidPartyPanel.IsResolveEligible(heroSlot.Hero))
         {
             SlotAnimator.SetBool("marked", true);
         }
     }
 }
コード例 #12
0
ファイル: DragManager.cs プロジェクト: ahenrique23/GameEstudo
    public void EndDragging(HeroSlot heroSlot, PointerEventData eventData, bool fromRaidPanel = false)
    {
        if (EventEndDraggingPartyHero != null)
        {
            EventEndDraggingPartyHero(null, null);
        }
        HeroItem.SlotController.SetBool("isHidden", false);

        heroHolder.gameObject.SetActive(false);
        Cursor.visible = true;
        HeroItem       = null;
    }
コード例 #13
0
 void rosterPanel_onHeroSlotEndDragging(HeroSlot heroSlot)
 {
     for (int i = 0; i < 3; i++)
     {
         quirkSlots[i].UpdateSlot();
         diseaseSlots[i].UpdateSlot();
         if (quirkWindow.isActiveAndEnabled || diseaseWindow.isActiveAndEnabled)
         {
             quirkSlots[i].buttonIcon.gameObject.SetActive(false);
             diseaseSlots[i].buttonIcon.gameObject.SetActive(false);
         }
     }
 }
コード例 #14
0
    HeroSlot CreateSlot(Hero hero)
    {
        GameObject gameObject = Instantiate(heroSlotTemplate);

        gameObject.transform.SetParent(rosterSlots, false);
        HeroSlot heroSlot = gameObject.GetComponent <HeroSlot>();

        heroSlot.HeroRoster = this;
        heroSlot.Hero       = hero;
        heroSlot.UpdateSlot();
        HeroSlots.Add(heroSlot);
        return(heroSlot);
    }
コード例 #15
0
 public void ItemDroppedIn(HeroSlot heroSlot)
 {
     SelectedHero       = heroSlot;
     heroSlot.PartySlot = this;
     SlotAnimator.SetBool("empty", false);
     SlotAnimator.SetBool("marked", false);
     SlotAnimator.SetBool("locked", false);
     heroFrame.sprite = heroSlot.portrait.sprite;
     heroSlot.SetStatus(HeroStatus.RaidParty);
     if (onDropIn != null)
     {
         onDropIn(heroSlot);
     }
 }
コード例 #16
0
    public void ItemDroppedOut(HeroSlot heroSlot)
    {
        SelectedHero       = null;
        heroSlot.PartySlot = null;
        SlotAnimator.SetBool("empty", true);
        SlotAnimator.SetBool("marked", false);
        SlotAnimator.SetBool("locked", false);
        heroSlot.SetStatus(HeroStatus.Available);
        if (onDropOut != null)
        {
            onDropOut(heroSlot);
        }

        DarkestSoundManager.PlayOneShot("event:/ui/town/character_remove");
    }
コード例 #17
0
ファイル: DragManager.cs プロジェクト: ahenrique23/GameEstudo
    public void StartDragging(HeroSlot heroSlot, PointerEventData eventData, bool fromRaidPanel = false)
    {
        DarkestSoundManager.PlayOneShot("event:/ui/town/character_pickup");

        UpdateHeroItemPosition(eventData);
        LoadHeroItem(heroSlot);

        if (EventStartDraggingPartyHero != null)
        {
            EventStartDraggingPartyHero(null, heroSlot);
        }

        HeroItem.SlotController.SetBool("isHidden", true);

        Cursor.visible = false;
    }
コード例 #18
0
    void rosterPanel_onHeroSlotBeginDragging(HeroSlot heroSlot)
    {
        if (quirkWindow.isActiveAndEnabled)
        {
            quirkWindow.ResetWindow();
        }
        if (diseaseWindow.isActiveAndEnabled)
        {
            diseaseWindow.ResetWindow();
        }

        for (int i = 0; i < 3; i++)
        {
            quirkSlots[i].UpdateHeroAvailable(heroSlot.Hero);
            diseaseSlots[i].UpdateHeroAvailable(heroSlot.Hero);
            quirkSlots[i].buttonIcon.gameObject.SetActive(false);
            diseaseSlots[i].buttonIcon.gameObject.SetActive(false);
        }
    }
コード例 #19
0
ファイル: DragManager.cs プロジェクト: ahenrique23/GameEstudo
 public void OnDrag(HeroSlot heroSlot, PointerEventData eventData)
 {
     UpdateHeroItemPosition(eventData);
 }
コード例 #20
0
 public void UnmarkSlots(RaidPartySlot partySlot, HeroSlot heroSlot)
 {
     SlotAnimator.SetBool("marked", false);
 }
コード例 #21
0
 void DeactivateDropOutPanel(RaidPartySlot partySlot, HeroSlot heroSlot)
 {
     heroDiscardPanel.gameObject.SetActive(false);
 }
コード例 #22
0
 bool RaidPartyPanel_compatibilityCheck(HeroSlot heroSlot)
 {
     return(IsCompatible(heroSlot.Hero));
 }
コード例 #23
0
    public void RemoveHeroSlot(HeroData hero)
    {
        HeroSlot slot = SlotsInUse.Find(x => x.hero == hero);

        slot.gameObject.SetActive(false);
    }
コード例 #24
0
 private bool PartyCompatibilityCheck(HeroSlot heroSlot)
 {
     return(IsCompatible(heroSlot.Hero));
 }
コード例 #25
0
 private void ActivateDropOutPanel(RaidPartySlot partySlot, HeroSlot heroSlot)
 {
     heroDiscardPanel.gameObject.SetActive(true);
 }
コード例 #26
0
        void ViewHeroInStore(bool sorting = false)
        {
            Transform trans = _core._teamPanel.transform.Find("TeamStoreMask").Find("GridView");

            if (trans.childCount != 0)
            {
                return;
            }

            if (sorting)
            {
                int count = 0;
                int pos   = 0;
                foreach (HeroStore hero in _teamList)
                {
                    if (hero.id == -1)
                    {
                        count++;
                        continue;
                    }
                    for (int i = 0; i < _heroList.Count; i++)
                    {
                        if (_teamList[count].id == _heroList[i].id)
                        {
                            HeroStore tmp = _heroList[i];
                            _heroList[i]   = _heroList[pos];
                            _heroList[pos] = tmp;
                            break;
                        }
                    }
                    pos++;
                    count++;
                }
            }

            Sprite[] loadSprite   = null;
            string   getSpriteSet = "";

            GameObject ShadowSlot = Instantiate(_shadowSlot);

            ShadowSlot.transform.SetParent(trans);
            ShadowSlot.transform.localScale = new Vector3(1, 1, 1);
            ShadowSlot shadow  = ShadowSlot.GetComponent <ShadowSlot>();
            HeroStore  newhero = new HeroStore();

            newhero.id   = -1;
            shadow._hero = newhero;

            for (int i = 0; i < _heroList.Count; i++)
            {
                GameObject slot = Instantiate(_heroSlot);
                slot.transform.SetParent(trans);
                slot.transform.localScale = new Vector3(1, 1, 1);
                HeroSlot hero = slot.GetComponent <HeroSlot>();
                hero._hero = _heroList[i];

                if (getSpriteSet != _heroList[i].hero.spriteSet)
                {
                    getSpriteSet = _heroList[i].hero.spriteSet;
                    loadSprite   = Resources.LoadAll <Sprite>("Sprites/Character/Hero/" + getSpriteSet);
                }

                slot.transform.Find("Image").GetComponent <Image>().sprite = loadSprite.Single(s => s.name == "Icon_" + _heroList[i].hero.spriteName);
                if (_sortingIsSelect == Sorting.HP)
                {
                    slot.transform.Find("Level").GetComponent <Text>().text = _heroList[i].hp.ToString();
                }
                else
                {
                    slot.transform.Find("Level").GetComponent <Text>().text = "เลเวล" + _heroList[i].level;
                }


                for (int j = 0; j < _teamList.Count; j++)
                {
                    if (_teamList[j].id == -1)
                    {
                        continue;
                    }
                    if (_heroList[i].id == _teamList[j].id)
                    {
                        slot.transform.Find("Select").gameObject.SetActive(true);
                        break;
                    }
                }

                _core.SetSpriteType(slot.transform.Find("Type").GetComponent <Image>(), _heroList[i].hero.type);
                _heroList[i].obj = slot;
                if (_core._cutscene != null)
                {
                    if (_heroList[i].heroId == 9)
                    {
                        _core._cutscene.GetComponent <Cutscene>().TutorialPlay(slot.transform);
                    }
                }
            }
        }
コード例 #27
0
 public void ItemSwapped(HeroSlot heroSlot)
 {
     SelectedHero       = heroSlot;
     heroSlot.PartySlot = this;
     heroFrame.sprite   = heroSlot.portrait.sprite;
 }