示例#1
0
        private void UpdateCompanionStatus(CompanionStatus inStatus, PriorCompanionSlotState inState)
        {
            // Image
            inStatus.CompanionSliderFill.sprite = inState.PriorUIIcon;

            // Slider value
            inStatus.CompanionSlider.value = inState.PriorCooldown;

            // Use Count
            if (inState.PriorUseCount == CompanionConstants.UnlimitedCharges)
            {
                inStatus.CompanionUseCountText.text = "";
            }
            else
            {
                inStatus.CompanionUseCountText.text = inState.PriorUseCount.ToString();

                inStatus.CompanionUseCountText.color = inState.PriorUseCount == 0 ? Color.red : Color.white;
            }

            // Active
            inStatus.CompanionSliderFill.CrossFadeAlpha(inState.PriorActive ? 1.0f : IconDisableAlpha, 0.0f, true);
            inStatus.CompanionSliderFill.type       = Image.Type.Filled;
            inStatus.CompanionSliderFill.fillMethod = Image.FillMethod.Vertical;
        }
示例#2
0
 private void AssertSlotUpdated(CompanionStatusHUDComponent.CompanionStatus status,
                                PriorCompanionSlotState state)
 {
     Assert.AreEqual(status.CompanionUseCountText.text, state.PriorUseCount.ToString());
     Assert.AreSame(status.CompanionSliderFill.sprite, state.PriorUIIcon);
     Assert.AreEqual(status.CompanionSlider.value, state.PriorCooldown);
 }
示例#3
0
        public void ReceiveSlotsUpdatedUIMessage_CountNonZero_SetTextColorToWhite()
        {
            var primaryMessageData = new PriorCompanionSlotState {
                PriorCompanion = null, PriorActive = false, PriorUseCount = 1, PriorUIIcon = _setSprite, PriorCooldown = 1.0f
            };
            var secondaryMessageData = new PriorCompanionSlotState {
                PriorCompanion = null, PriorActive = true, PriorUseCount = 1, PriorUIIcon = _setSprite, PriorCooldown = 0.0f
            };

            _status.TestDispatcher.InvokeMessageEvent(new CompanionSlotsUpdatedUIMessage(new Dictionary <ECompanionSlot, PriorCompanionSlotState>
            {
                { ECompanionSlot.Primary, primaryMessageData },
                { ECompanionSlot.Secondary, secondaryMessageData }
            }
                                                                                         ));

            Assert.AreEqual(Color.white, _primaryStatusElement.CompanionUseCountText.color);
        }
示例#4
0
        public void ReceiveSlotsUpdatedUIMessage_CountUnlimited_SetTextColorToEmpty()
        {
            var primaryMessageData = new PriorCompanionSlotState {
                PriorCompanion = null, PriorActive = false, PriorUseCount = CompanionConstants.UnlimitedCharges, PriorUIIcon = _setSprite, PriorCooldown = 1.0f
            };
            var secondaryMessageData = new PriorCompanionSlotState {
                PriorCompanion = null, PriorActive = true, PriorUseCount = 1, PriorUIIcon = _setSprite, PriorCooldown = 0.0f
            };

            _status.TestDispatcher.InvokeMessageEvent(new CompanionSlotsUpdatedUIMessage(new Dictionary <ECompanionSlot, PriorCompanionSlotState>
            {
                { ECompanionSlot.Primary, primaryMessageData },
                { ECompanionSlot.Secondary, secondaryMessageData }
            }
                                                                                         ));

            Assert.IsTrue(_primaryStatusElement.CompanionUseCountText.text.IsNullOrEmpty());
        }
示例#5
0
        public void ReceiveSlotsUpdatedUIMessage_UpdatesSlotsWithNewData()
        {
            var primaryMessageData = new PriorCompanionSlotState {
                PriorCompanion = null, PriorActive = false, PriorUseCount = 2, PriorUIIcon = _setSprite, PriorCooldown = 1.0f
            };
            var secondaryMessageData = new PriorCompanionSlotState {
                PriorCompanion = null, PriorActive = true, PriorUseCount = 1, PriorUIIcon = _setSprite, PriorCooldown = 0.0f
            };

            _status.TestDispatcher.InvokeMessageEvent(new CompanionSlotsUpdatedUIMessage(new Dictionary <ECompanionSlot, PriorCompanionSlotState>
            {
                { ECompanionSlot.Primary, primaryMessageData },
                { ECompanionSlot.Secondary, secondaryMessageData }
            }
                                                                                         ));

            AssertSlotUpdated(_primaryStatusElement, primaryMessageData);
            AssertSlotUpdated(_secondaryStatusElement, secondaryMessageData);
        }
示例#6
0
        public void ReceiveSlotsUpdatedUIMessage_ImagePropertiesAreAsExpected()
        {
            var primaryMessageData = new PriorCompanionSlotState {
                PriorCompanion = null, PriorActive = false, PriorUseCount = CompanionConstants.UnlimitedCharges, PriorUIIcon = _setSprite, PriorCooldown = 1.0f
            };
            var secondaryMessageData = new PriorCompanionSlotState {
                PriorCompanion = null, PriorActive = true, PriorUseCount = 1, PriorUIIcon = _setSprite, PriorCooldown = 0.0f
            };

            _status.TestDispatcher.InvokeMessageEvent(new CompanionSlotsUpdatedUIMessage(new Dictionary <ECompanionSlot, PriorCompanionSlotState>
            {
                { ECompanionSlot.Primary, primaryMessageData },
                { ECompanionSlot.Secondary, secondaryMessageData }
            }
                                                                                         ));

            Assert.AreEqual(Image.FillMethod.Vertical, _primaryStatusElement.CompanionSliderFill.fillMethod);
            Assert.AreEqual(Image.Type.Filled, _primaryStatusElement.CompanionSliderFill.type);
        }