public void Backspace()
        {
            if (playerSpell.Length == 0)
            {
                return;
            }

            char lastCharacter = playerSpell[playerSpell.Length - 1];

            playerSpell = playerSpell.Remove(playerSpell.Length - 1, 1);

            spellText.text = playerSpell.ToString();


            Button characterButton = characterPool.GetInstance <Button>(characterModel.gameObject, characterContainer);

            characterButton.GetComponentInChildren <Text>().text = lastCharacter.ToString();

            characterButton.onClick.RemoveAllListeners();

            characterButton.onClick.AddListener(delegate
            {
                characterPool.AddInstanceToPool(characterButton.gameObject);

                playerSpell.Append(lastCharacter.ToString());

                spellText.text = playerSpell.ToString();
            });
        }
        /// <summary>
        /// 横向跳动文本动画(用于显示伤害文本动画)
        /// </summary>
        /// <param name="hurtString">Hurt string.</param>
        public void PlayHurtTextAnim(ExploreText et)
        {
            // 从缓存池获取文本模型
            Text hurtText = exploreTextPool.GetInstance <Text> (exploreTextModel.gameObject, exploreTextContainer);

            // 伤害文本的原始位置
            Vector3 originHurtPos = Vector3.zero;
            // 伤害文本的第一次跳动终点
            Vector3 firstHurtPos = Vector3.zero;
            // 伤害文本的第二次跳动终点
            Vector3 secondHurtPos = Vector3.zero;
            // 提示文本的原始位置【伤害可能附带暴击,闪避等提示文字】
            Vector3 originTintPos = Vector3.zero;
            // 提示文本的终点位置【伤害可能附带暴击,闪避等提示文字】
            Vector3 finalTintPos = Vector3.zero;


            // 下面设置文本的动画路径
            switch (et.towards)
            {
            case MyTowards.Left:
            case MyTowards.Up:
                originHurtPos = et.basePosition + new Vector3(-50f, 50f, 0);
                firstHurtPos  = originHurtPos + new Vector3(-Random.Range(80, 100), Random.Range(0, 10), 0);
                secondHurtPos = firstHurtPos + new Vector3(-Random.Range(20, 30), Random.Range(0, 2), 0);
                originTintPos = originHurtPos + new Vector3(-100f, 100f, 0);
                break;

            case MyTowards.Right:
            case MyTowards.Down:
                originHurtPos = et.basePosition + new Vector3(50f, 50f, 0);
                firstHurtPos  = originHurtPos + new Vector3(Random.Range(80, 100), Random.Range(0, 10), 0);
                secondHurtPos = firstHurtPos + new Vector3(Random.Range(20, 30), Random.Range(0, 2), 0);
                originTintPos = originHurtPos + new Vector3(100f, 100f, 0);
                break;
            }

            hurtText.transform.localPosition = originHurtPos;

            hurtText.text = et.text;

            hurtText.GetComponentInChildren <Image>().enabled = false;

            hurtText.gameObject.SetActive(true);

            float firstJumpPower = Random.Range(100f, 120f);

            // 伤害文本跳跃动画
            hurtText.transform.DOLocalJump(firstHurtPos, firstJumpPower, 1, 0.4f).OnComplete(() => {
                float secondJumpPower = Random.Range(20f, 30f);

                // 伤害文本二次跳跃
                hurtText.transform.DOLocalJump(secondHurtPos, secondJumpPower, 1, 0.15f).OnComplete(() => {
                    hurtText.text = "";
                    hurtText.gameObject.SetActive(false);
                    exploreTextPool.AddInstanceToPool(hurtText.gameObject);
                });
            });
        }
        /// <summary>
        /// 初始化所有消耗品显示界面
        /// </summary>
        public void SetUpConsumablesInBagPlane()
        {
            UpdatePageButtonStatus();

            consumablesButtonPool.AddChildInstancesToPool(consumablesInBagContainer);

            if (player.allConsumablesInBag.Count <= equipedConsumablesButtons.Length)
            {
                return;
            }

            int firstIndexOfCurrentPage = equipedConsumablesButtons.Length + currentConsumablesPage * consumablesCountInOnePage;

            int firstIndexOfNextPage = firstIndexOfCurrentPage + consumablesCountInOnePage;

            int endIndexOfConsumablesInCurrentPage = player.allConsumablesInBag.Count < firstIndexOfNextPage ? player.allConsumablesInBag.Count - 1 : firstIndexOfNextPage - 1;

            for (int i = firstIndexOfCurrentPage; i <= endIndexOfConsumablesInCurrentPage; i++)
            {
                Consumables consumables = Player.mainPlayer.allConsumablesInBag [i];

                Button consumablesButton = consumablesButtonPool.GetInstance <Button> (consumablesButtonModel.gameObject, consumablesInBagContainer);

                consumablesButton.GetComponent <ConsumablesInBagCell> ().SetUpConsumablesInBagCell(consumables);
            }
        }
        /// <summary>
        /// 初始化主动技能按钮
        /// </summary>
        public void SetUpActiveSkillButtons()
        {
            for (int i = 0; i < activeSkillButtonContainer.childCount; i++)
            {
                ActiveSkillButton activeSkillButton = activeSkillButtonContainer.GetChild(i).GetComponent <ActiveSkillButton>();

                float coolenPercentage = activeSkillButton.mask.fillAmount;
                player.attachedActiveSkills[i].coolenPercentage = (int)(coolenPercentage * 100);
            }

            for (int i = 0; i < activeSkillButtonContainer.childCount; i++)
            {
                activeSkillButtonContainer.GetChild(i).GetComponent <ActiveSkillButton>().Reset();
            }

            activeSkillButtonPool.AddChildInstancesToPool(activeSkillButtonContainer);


            if (bpCtr.towards == MyTowards.Left || bpCtr.towards == MyTowards.Right)
            {
                for (int i = 0; i < player.attachedActiveSkills.Count; i++)
                {
                    ActiveSkill       skill             = player.attachedActiveSkills[i];
                    ActiveSkillButton activeSkillButton = activeSkillButtonPool.GetInstance <ActiveSkillButton>(activeSkillButtonModel.gameObject, activeSkillButtonContainer);
                    int index = i;
                    //Debug.LogFormat("skill:{0},coolenPercentage:{1}", player.attachedActiveSkills[i].skillName, player.attachedActiveSkills[i].coolenPercentage);
                    activeSkillButton.SetUpActiveSkillButton(skill, index, activeSkillButtonContainer);
                    activeSkillButton.AddListener(OnActiveSkillButtonClick);
                }
            }
        }
Example #5
0
        /// <summary>
        /// 初始化已学习页
        /// </summary>
        /// <param name="learnInfo">Learn info.</param>
//		public void SetUpAllLearnedWords(){
//
//			wordsPlane.gameObject.SetActive (true);
//
//			List<LearnWord> allLearnedWords = learnInfo.GetAllLearnedWords ();
//
//			for (int i = 0; i < allLearnedWords.Count; i++) {
//
//				LearnWord word = allLearnedWords [i];
//
//				Transform wordItem = wordPool.GetInstance <Transform> (wordModel.gameObject, wordContainer);
//
//				wordItem.GetComponent<WordItemView> ().SetUpCellDetailView (word);
//
//			}
//
//		}

        /// <summary>
        /// 初始化未学习页
        /// </summary>
        /// <param name="learnInfo">Learn info.</param>
        public void SetUpAllUngraspedWords()
        {
            List <LearnWord> allUngraspedWords = learnInfo.GetAllUngraspedWords();

            wordPool.AddChildInstancesToPool(wordContainer);

            for (int i = 0; i < allUngraspedWords.Count; i++)
            {
                LearnWord word = allUngraspedWords [i];

                Transform wordItem = wordPool.GetInstance <Transform> (wordModel.gameObject, wordContainer);

                wordItem.GetComponent <WordItemView> ().SetUpCellDetailView(word);
            }

            generalInfoPlane.gameObject.SetActive(false);
            wordsPlane.gameObject.SetActive(true);

            wrongWordsTitle.GetComponent <Image> ().sprite        = selectedSprite;
            wrongWordsTitle.GetComponentInChildren <Text>().color = new Color(
                CommonData.selectedColor.x,
                CommonData.selectedColor.y,
                CommonData.selectedColor.z);
            recordTitle.GetComponent <Image> ().sprite        = normalSprite;
            recordTitle.GetComponentInChildren <Text>().color = new Color(
                CommonData.deselectedColor.x,
                CommonData.deselectedColor.y,
                CommonData.deselectedColor.z);

            GetComponent <Canvas> ().enabled = true;
        }
        private void UpdateGoodsDisplay()
        {
            goodsPool.AddChildInstancesToPool(goodsContainer);

            List <HLHNPCGoods> itemsAsGoods = npc.GetCurrentLevelGoods();

            for (int i = 0; i < itemsAsGoods.Count; i++)
            {
                HLHNPCGoods goods = itemsAsGoods[i];

                Transform goodsCell = goodsPool.GetInstance <Transform>(goodsModel.gameObject, goodsContainer);

                Item itemAsGoods = goods.GetGoodsItem();

                goodsCell.GetComponent <GoodsCell>().SetUpGoodsCell(goods);

                goodsCell.GetComponent <Button>().onClick.RemoveAllListeners();

                int goodsIndex = i;

                goodsCell.GetComponent <Button>().onClick.AddListener(delegate {
                    currentSelectedItem    = itemAsGoods;
                    currentSelectItemPrice = goods.GetGoodsPrice();
                    itemDetail.SetUpItemDetail(itemAsGoods, currentSelectItemPrice, ItemOperationType.Buy);
                    UpdateGoodsSelection(goodsIndex);
                    currentSelectGoodsIndex = goodsIndex;
                    bagItemsDisplay.HideAllItemSelectedTintIcon();
                });
            }
        }
Example #7
0
        /// <summary>
        /// 更新指定页面的已学习单词
        /// </summary>
        public void UpdateWordsOfCurrentPage(List <HLHWord> words, int currentPageIndex, int totalPage)
        {
            wordPool.AddChildInstancesToPool(wordContainer);

            int minWordIndexOfCurrentPage = currentPageIndex * CommonData.singleWordsRecordsPageVolume;
            int maxWordIndexOfCurrentPage = (currentPageIndex + 1) * CommonData.singleWordsRecordsPageVolume - 1;

            maxWordIndexOfCurrentPage = maxWordIndexOfCurrentPage > words.Count ? words.Count : maxWordIndexOfCurrentPage;

            for (int i = 0; i < words.Count; i++)
            {
                HLHWord word = words[i];

                WordItemView wordItem = wordPool.GetInstance <WordItemView>(wordModel.gameObject, wordContainer);

                int indexInCurrentPage = i;

                wordItem.InitWordItemView(ShowChangeWordStatusQueruHUD, delegate {
                    ShowWordDetail(word, minWordIndexOfCurrentPage + indexInCurrentPage);
                }, wordPool);
                wordItem.SetUpCellDetailView(word);
            }

            generalInfoPlane.gameObject.SetActive(false);
            wordsPlane.gameObject.SetActive(true);

            wordPageText.text = string.Format("{0}/{1}", currentPageIndex + 1, totalPage);

            GetComponent <Canvas>().enabled = true;
        }
Example #8
0
        public IEnumerator SingleTextFloatAndDisappear(string tint)
        {
            Text tintText = tintTextPool.GetInstance <Text>(tintTextModel.gameObject, tintTextContainer);

            singleTextTints.Add(tintText);

            tintText.text = tint;

            tintText.color = Color.white;

            tintText.transform.localPosition = Vector3.zero;

            yield return(new WaitForSecondsRealtime(tintHUDStayDuration));

            float timer = 0;

            float tintTextAlphaChangeSpeed = 1 / tintHUDFloatDuration;

            while (timer < tintHUDFloatDuration)
            {
                tintText.transform.localPosition = new Vector3(0, singleTintTextFloatSpeed * Time.unscaledDeltaTime, 0) + tintText.transform.localPosition;

                tintText.color = new Color(1, 1, 1, 1 - tintTextAlphaChangeSpeed * timer);

                timer += Time.unscaledDeltaTime;

                yield return(null);
            }



            tintTextPool.AddInstanceToPool(tintText.gameObject);

            singleTextTints.Remove(tintText);
        }
        public void SetUpDialogPlane(Dialog dialog)
        {
            dialogText.text = dialog.dialog;

            choiceButtonPool.AddChildInstancesToPool(choiceContainer);

            bool showNextButton = true;

            List <Choice> choices = dialog.choices;

            for (int i = 0; i < choices.Count; i++)
            {
                Choice choice = choices [i];

                if (choice.choice == string.Empty)
                {
                    continue;
                }

                showNextButton = false;

//				Button choiceButton = Instantiate (choiceButtonModel.gameObject).GetComponent<Button> ();
//				choiceButton.transform.SetParent (choiceContainer);


                Button choiceButton = choiceButtonPool.GetInstance <Button> (choiceButtonModel.gameObject, choiceContainer);

                choiceButton.GetComponentInChildren <Text> ().text = choice.choice;

                choiceButton.onClick.RemoveAllListeners();

                choiceButton.onClick.AddListener(delegate() {
                    MakeChoice(choice);
                });
            }

            nextDialogButton.gameObject.SetActive(showNextButton);

            if (dialog.rewardIds.Length != 0)
            {
                for (int i = 0; i < dialog.rewardIds.Length; i++)
                {
                    Item rewardItem = Item.NewItemWith(dialog.rewardIds [i], dialog.rewardCounts [i]);
                    Player.mainPlayer.AddItem(rewardItem);
                    dialog.finishRewarding = true;
                    string tint = string.Format("获得 {0} x{1}", rewardItem.itemName, rewardItem.itemCount);

                    Sprite rewardSprite = GameManager.Instance.gameDataCenter.allItemSprites.Find(delegate(Sprite obj) {
                        return(obj.name == rewardItem.spriteName);
                    });

                    tintHUD.SetUpTintHUD(tint, rewardSprite);
                }
            }
        }
        public void SetUpSkillLearningView(HLHNPC npc, CallBack quitCallBack)
        {
            this.currentNpc = npc;

            GameManager.Instance.soundManager.PlayAudioClip(CommonData.merchantAudioName);

            gameObject.SetActive(true);

            this.skillGoodsIds = npc.npcSkillIds;

            this.quitCallBack = quitCallBack;

            skillGoodsPool.AddChildInstancesToPool(skillGoodsContainer);

            for (int i = 0; i < skillGoodsIds.Count; i++)
            {
                SkillGoodsInTrade skillGoodsDetail = skillGoodsPool.GetInstance <SkillGoodsInTrade>(skillGoodsModel.gameObject, skillGoodsContainer);

                Skill skill = GameManager.Instance.gameDataCenter.allSkills.Find(delegate(Skill obj)
                {
                    return(obj.skillId == skillGoodsIds[i]);
                });

                skillGoodsDetail.SetupSkillDetailInNPC(skill, SkillGoodsSelectCallBack);

                skillGoodsDetail.SetUpSelectedIcon(false);

                allSkillGoods.Add(skillGoodsDetail);
            }

            skillNumLeftText.text = string.Format("剩余技能点: {0}", Player.mainPlayer.skillNumLeft);

            for (int i = 0; i < allLearnedSkillDetails.Length; i++)
            {
                SimpleSkillDetail learnedSkillDetail = allLearnedSkillDetails[i];

                if (i < Player.mainPlayer.allLearnedSkills.Count)
                {
                    Skill learnedSkill = Player.mainPlayer.allLearnedSkills[i];

                    learnedSkillDetail.SetUpSimpleSkillDetail(learnedSkill, LearnedSkillSelectCallBack);
                }
                else
                {
                    learnedSkillDetail.ClearSimpleSkillDetail();
                }

                learnedSkillDetail.SetUpSelectedIcon(false);
            }

            //skillDetailInTrade.InitskilldetailInTrade(UpdateLearnedSkillsPlane);
            skillDetailInTrade.ClearSkillDetailInTrade();

            EnterSkillGoodsTradeViewDisplay();
        }
Example #11
0
        private IEnumerator Fire()
        {
            while (true)
            {
                yield return(new WaitForSeconds(fireInterval));

                Bullet bullet = bulletPool.GetInstance <Bullet> (bulletModel.gameObject, bulletsContainer);

                bullet.BulletMove(this.transform.position, towards, range, bulletPool);
            }
        }
Example #12
0
        public void SetUpWordHUDAndShow(HLHWord word)
        {
            this.questionWord = word;

            if (Application.internetReachability == NetworkReachability.NotReachable)
            {
                pronounceNotAvalableHintTextInFill.enabled = true;
            }
            else
            {
                pronounceNotAvalableHintTextInFill.enabled = false;
            }

            pronounceNotAvalableHintTextInExplain.enabled = false;

            gameObject.SetActive(true);

            EnableClick();

            canQuitWhenClickBackground = true;

            explainationSelectPlane.gameObject.SetActive(false);
            characterFillPlane.gameObject.SetActive(true);

            realCharacters   = word.spell.ToCharArray();
            answerCharacters = GenerateCharacterFillArray(word.spell);

            questionForCharacterFill.text       = word.explaination;
            phoneticSymbolForCharacterFill.text = word.phoneticSymbol;

            lockStatusIcon.sprite = lockSprite;

            fillAndCodeCells.Clear();

            for (int i = 0; i < realCharacters.Length; i++)
            {
                char charInQuestion = answerCharacters [i];

                char realChar = realCharacters [i];

                FillAndCodeCell cell = characterToFillCellPool.GetInstance <FillAndCodeCell> (fillAndCodeModel.gameObject, characterToFillCellContainer);

                cell.gameObject.SetActive(true);

                answerCharacters [i] = cell.SetUpFillAndCodeCell(i, charInQuestion, realChar, CharacterChange, CharacterClick);

                fillAndCodeCells.Add(cell);
            }

            //if(GameManager.Instance.gameDataCenter.gameSettings.isAutoPronounce){
            //	OnPronunceButtonClick();
            //}
        }
Example #13
0
        private void SetUpKeysSelect(List <SpecialItem> keys)
        {
            toolButtonPool.AddChildInstancesToPool(toolButtonContainer);
            for (int i = 0; i < keys.Count; i++)
            {
                SpecialItem tool = keys[i];

                ToolButton toolButton = toolButtonPool.GetInstance <ToolButton>(toolButtonModel.gameObject, toolButtonContainer);

                toolButton.SetUpToolButton(tool, ToolSelectCallBack);
            }
        }
        /// <summary>
        /// 添加选项卡
        /// </summary>
        /// <param name="choiceContent">选项卡显示名称.</param>
        /// <param name="choiceSelectCallBack">点击响应/param>
        private void AddChoice(string choiceContent, CallBack choiceSelectCallBack)
        {
            Button choiceButton = choiceButtonPool.GetInstance <Button>(choiceButtonModel.gameObject, choiceButtonContainer);

            choiceButton.GetComponentInChildren <Text>().text = choiceContent;

            // 移除原有事件监听
            choiceButton.onClick.RemoveAllListeners();

            // 添加事件监听
            choiceButton.onClick.AddListener(delegate
            {
                choiceSelectCallBack();
            });
        }
Example #15
0
        public void UpdateCrystalHarvest(int totalCount)
        {
            Transform crystal = crystalPool.GetInstance <Transform> (crystalModel.gameObject, crystalContainer);

            crystal.localPosition = new Vector3(0, 450, 0);
            crystal.GetComponent <Image> ().enabled = true;

            Tween crystalMove = crystal.DOLocalMove(new Vector3(-445, 680, 0), 0.5f).OnComplete(delegate {
                crystal.GetComponent <Image> ().enabled = false;
                crystalPool.AddInstanceToPool(crystal.gameObject);
                crystalHarvestCount.text = totalCount.ToString();
            });

            crystalMove.SetUpdate(true);
        }
Example #16
0
        private void SetUpKeyDoorCharacterFill(HLHWord word)
        {
            keyDoorCharacterFillList.Clear();

            char[] characters = word.spell.ToCharArray();

            for (int i = 0; i < word.wordLength; i++)
            {
                KeyDoorCharacterFill keyDoorCharacter = keyDoorCharacterPool.GetInstance <KeyDoorCharacterFill>(keyDoorCharacterModel.gameObject, keyDoorCharacterContainer);

                keyDoorCharacter.Reset();

                keyDoorCharacterFillList.Add(keyDoorCharacter);
            }
        }
        protected void UpdateSkillStatusPlane(Agent agent)
        {
            statusTintPool.AddChildInstancesToPool(statusTintContainer);

            for (int i = 0; i < agent.allStatus.Count; i++)
            {
                string status     = agent.allStatus [i];
                Image  statusTint = statusTintPool.GetInstance <Image> (statusTintModel.gameObject, statusTintContainer);

                Sprite sprite = GameManager.Instance.gameDataCenter.allSkillSprites.Find(delegate(Sprite obj) {
                    return(obj.name == status);
                });

                statusTint.sprite  = sprite;
                statusTint.enabled = sprite != null;
            }
        }
        public void SetUpUnlockedItemsView(UnlockScrollType unlockScrollType)
        {
            switch (unlockScrollType)
            {
            case UnlockScrollType.Equipment:
                unlockEquipmentTitle.GetComponent <Image> ().sprite         = selectedSprite;
                unlockEquipmentTitle.GetComponentInChildren <Text> ().color = new Color(
                    CommonData.selectedColor.x,
                    CommonData.selectedColor.y,
                    CommonData.selectedColor.z);
                unlockConsumablesTitle.GetComponent <Image> ().sprite        = normalSprite;
                unlockConsumablesTitle.GetComponentInChildren <Text>().color = new Color(
                    CommonData.deselectedColor.x,
                    CommonData.deselectedColor.y,
                    CommonData.deselectedColor.z);
                break;

            case UnlockScrollType.Consumables:
                unlockConsumablesTitle.GetComponent <Image> ().sprite         = selectedSprite;
                unlockConsumablesTitle.GetComponentInChildren <Text> ().color = new Color(
                    CommonData.selectedColor.x,
                    CommonData.selectedColor.y,
                    CommonData.selectedColor.z);
                unlockEquipmentTitle.GetComponent <Image> ().sprite        = normalSprite;
                unlockEquipmentTitle.GetComponentInChildren <Text>().color = new Color(
                    CommonData.deselectedColor.x,
                    CommonData.deselectedColor.y,
                    CommonData.deselectedColor.z);
                break;
            }

            unlockedItemsPool.AddChildInstancesToPool(unlockedItemsContainer);

            for (int i = 0; i < Player.mainPlayer.allUnlockScrollsInBag.Count; i++)
            {
                UnlockScroll unlockScroll = Player.mainPlayer.allUnlockScrollsInBag [i];
                if (unlockScroll.unlocked && unlockScroll.unlockScrollType == unlockScrollType)
                {
                    Transform unlockedItem = unlockedItemsPool.GetInstance <Transform> (unlockedItemModel.gameObject, unlockedItemsContainer);
                    SetUpUnlockedItem(unlockedItem, unlockScroll);
                }
            }

            GetComponent <Canvas> ().enabled = true;
        }
Example #19
0
        public void SetUpScrollView()
        {
            cellPool.AddChildInstancesToPool(scrollContentContainer);

            scrollContentContainer.localPosition = new Vector3(scrollContentContainer.localPosition.x, 0, 0);

            //如果当前选中类的所有装备数量小于预加载数量,则只加载实际装备数量的cell
            int maxCount = maxCellsVisible < allDataList.Count ? maxCellsVisible : allDataList.Count;

            for (int i = 0; i < maxCount; i++)
            {
                object data = allDataList[i];

                Transform itemDetail = cellPool.GetInstance <Transform> (cellModel.gameObject, scrollContentContainer);

                itemDetail.GetComponent <ItemDetailView> ().SetUpCellDetailView(allDataList [i]);
            }

            //初始化当前顶部和底部的equipment序号
            currentMinCellIndex = 0;
            currentMaxCellIndex = maxCount < 1 ? 0 : maxCount - 1;
        }
Example #20
0
        /// <summary>
        /// 背包中单个物品按钮的初始化方法,序号-1代表添加到背包尾部
        /// </summary>
        /// <param name="item">Item.</param>
        /// <param name="btn">Button.</param>
        public void AddBagItem(Item item, int atIndex = -1, bool forceAdd = false)
        {
            // 如果当前背包已满
            if (bagItemsContainer.childCount == singleBagItemVolume && !forceAdd)
            {
                return;
            }

            if (player.allItemsInBag.Count <= minItemIndexOfCurrentBag)
            {
                tintHUD.SetUpTintHUD(string.Format("已自动加入背包{0}", currentBagIndex), null);
                return;
            }

            if (item is Equipment && (item as Equipment).equiped)
            {
                Debug.LogError("已装备的物品不应该出现在背包物品列表中" + item.itemName);
                return;
            }

            if (item is UnlockScroll && (item as UnlockScroll).unlocked)
            {
                Debug.LogError("已解锁的卷轴不应该出现在背包物品列表中" + item.itemName);
                return;
            }

            Transform bagItem = bagItemsPool.GetInstance <Transform> (bagItemModel.gameObject, bagItemsContainer);

            ItemInBagDragControl dragItemScript = bagItem.GetComponent <ItemInBagDragControl> ();

            dragItemScript.item = item;

            bagItem.GetComponent <ItemInBagCell> ().SetUpItemInBagCell(item);

            if (atIndex >= 0)
            {
                bagItem.SetSiblingIndex(atIndex - minItemIndexOfCurrentBag);
            }
        }
Example #21
0
        public void UpdateCharactersCollected()
        {
            ClearCharacterFragments();

            for (int i = 0; i < Player.mainPlayer.allCollectedCharacters.Count; i++)
            {
                char character = Player.mainPlayer.allCollectedCharacters[i];

                Image characterFragment = characterFragmentPool.GetInstance <Image>(characterFragmentModel.gameObject, characterFragmentsContainer);

                string characterSpriteName = string.Format("character_{0}", character);

                Sprite characterSprite = GameManager.Instance.gameDataCenter.allCharacterSprites.Find(delegate(Sprite obj)
                {
                    return(obj.name == characterSpriteName);
                });

                characterFragment.sprite = characterSprite;
            }

            UpdateCharacterFragmentsButton();
        }
Example #22
0
        /// <summary>
        /// 初始化通关记录界面【初始化UI】
        /// </summary>
        /// <param name="pageIndex">Page index.</param>
        /// <param name="maxPageIndex">Max page index.</param>
        /// <param name="minRecordIndex">Minimum record index.</param>
        /// <param name="maxRecordIndex">Max record index.</param>
        public void SetUpPlayerRecordView(int pageIndex, int maxPageIndex, int minRecordIndex, int maxRecordIndex)
        {
            if (playRecords == null || playRecords.Count == 0)
            {
                noDataHintText.enabled = true;
                nextPageButton.gameObject.SetActive(false);
                lastPageButton.gameObject.SetActive(false);
                pageText.enabled = false;
                return;
            }

            noDataHintText.enabled = false;
            nextPageButton.gameObject.SetActive(true);
            lastPageButton.gameObject.SetActive(true);
            pageText.enabled = true;

            pageText.text = string.Format("{0} / {1}", pageIndex + 1, maxPageIndex + 1);

            simpleRecordCellPool.AddChildInstancesToPool(simpleRecordCellContainer);

            for (int i = minRecordIndex; i <= maxRecordIndex; i++)
            {
                if (i < 0 || i >= playRecords.Count)
                {
                    continue;
                }

                PlayRecord           playRecord           = playRecords[i];
                PlayRecordSimpleCell playRecordSimpleCell = simpleRecordCellPool.GetInstance <PlayRecordSimpleCell>(simpleCellModel.gameObject, simpleRecordCellContainer);

                int recordIndex = i;

                playRecordSimpleCell.SetUpPlayRecordSimpleCell(playRecord, recordIndex, delegate
                {
                    playRecordDetailHUD.SetUpPlayRecordDetailHUD(playRecord);
                });
            }
        }
        public void SetUpTradePlane()
        {
            SoundManager.Instance.PlayAudioClip("UI/sfx_UI_Trader");

            ClearItemDetail();

            Trader trader = currentEnteredNpc as Trader;

            currentEnteredNpc = trader;

            tradePlane.gameObject.SetActive(true);

            goodsPool.AddChildInstancesToPool(goodsContainer);

            List <Item> itemsAsGoods = trader.itemsAsGoodsOfCurrentLevel;

            for (int i = 0; i < itemsAsGoods.Count; i++)
            {
                Item itemAsGoods = itemsAsGoods [i];

//				Transform goodsCell = Instantiate (goodsModel.gameObject).transform;
//				goodsCell.SetParent (goodsContainer);
                Transform goodsCell = goodsPool.GetInstance <Transform> (goodsModel.gameObject, goodsContainer);

                goodsCell.GetComponent <GoodsCell> ().SetUpGoodsCell(itemAsGoods);

                goodsCell.GetComponent <Button>().onClick.RemoveAllListeners();

                int goodsIndex = i;

                goodsCell.GetComponent <Button>().onClick.AddListener(delegate {
                    currentSelectedItem = itemAsGoods;
                    SetUpItemDetailsInTrade(itemAsGoods);
                    UpdateGoodsSelection(goodsIndex);
                });
            }
        }
        //public void AddSequenceItemsIfBagNotFull(){


        //	if (minItemIndexOfCurrentBag + bagItemsContainer.childCount >= Player.mainPlayer.allItemsInBag.Count) {
        //		return;
        //	}

        //	for (int i = minItemIndexOfCurrentBag + bagItemsContainer.childCount; i <= maxItemIndexOfCurrentBag; i++) {

        //		if (i >= Player.mainPlayer.allItemsInBag.Count) {
        //			return;
        //		}

        //		AddBagItem (Player.mainPlayer.allItemsInBag [i]);

        //	}

        //}

        /// <summary>
        /// 背包中单个物品按钮的初始化方法,序号-1代表添加到背包尾部
        /// </summary>
        /// <param name="item">Item.</param>
        /// <param name="btn">Button.</param>
        public void AddBagItem(Item item, int atIndex = -1, bool forceAdd = false)
        {
            // 如果当前背包已满
            if (bagItemsContainer.childCount == CommonData.singleBagItemVolume && !forceAdd)
            {
                return;
            }


            Transform bagItem = bagItemsPool.GetInstance <Transform> (bagItemModel.gameObject, bagItemsContainer);

            ItemInBagDragControl dragItemScript = bagItem.GetComponent <ItemInBagDragControl> ();

            dragItemScript.InitItemDragControl(item, itemClickCallBack);


            bagItem.GetComponent <ItemInBagCell> ().SetUpItemInBagCell(item);


            if (atIndex >= 0)
            {
                bagItem.SetSiblingIndex(atIndex - minItemIndexOfCurrentBag);
            }
        }
Example #25
0
//		private float GetMiddleLineWidth(int itemCount){
//
//			HorizontalLayoutGroup layout = recipesItemsContainer.GetComponent<HorizontalLayoutGroup> ();
//
//			float recipesItemWidth = recipesItemModel.GetComponent<RectTransform> ().rect.width;
//
//			return (itemCount - 1) * (layout.spacing + recipesItemWidth);
//
//		}

        private void SetUpRecipesItems(ItemModel.ItemInfoForProduce[] itemInfosForProduce)
        {
//			int horizontalFix = itemInfosForProduce.Length % 2 == 0 ? spacingX : 0;


            int spaceX = widthX / (itemInfosForProduce.Length > 1 ? itemInfosForProduce.Length - 1 : 1);

            recipesItemPool.AddChildInstancesToPool(recipesItemsContainer);

            bool canCraft = true;

            for (int i = 0; i < itemInfosForProduce.Length; i++)
            {
                ItemModel item = GameManager.Instance.gameDataCenter.allItemModels.Find(delegate(ItemModel obj) {
                    return(obj.itemId == itemInfosForProduce [i].itemId);
                });

                int itemCountForProduce = itemInfosForProduce [i].itemCount;

                Transform recipesItem = recipesItemPool.GetInstance <Transform> (recipesItemModel.gameObject, recipesItemsContainer);

                int localPosX = i * spaceX;

                recipesItem.localPosition = new Vector3(localPosX, 0, 0);

                Debug.Log(recipesItem.localPosition);

                Image recipesItemIcon       = recipesItem.Find("ItemIcon").GetComponent <Image> ();
                Text  recipesItemName       = recipesItem.Find("ItemName").GetComponent <Text> ();
                Text  recipesItemEnoughText = recipesItem.Find("ItemEnoughText").GetComponent <Text> ();

                Sprite itemSprite = GameManager.Instance.gameDataCenter.allItemSprites.Find(delegate(Sprite obj) {
                    return(obj.name == item.spriteName);
                });

                recipesItemIcon.sprite = itemSprite;

                recipesItemIcon.enabled = itemSprite != null;

                recipesItemName.text = item.itemName;

                int itemInBagCount = 0;

                List <Item> sameItemsInBag = Player.mainPlayer.allItemsInBag.FindAll(delegate(Item obj) {
                    return(obj.itemId == item.itemId);
                });

                for (int j = 0; j < Player.mainPlayer.allEquipedEquipments.Length; j++)
                {
                    if (Player.mainPlayer.allEquipedEquipments [j].itemId == item.itemId)
                    {
                        itemInBagCount++;
                    }
                }



                for (int j = 0; j < sameItemsInBag.Count; j++)
                {
                    itemInBagCount += sameItemsInBag [j].itemCount;
                }


                bool recipeItemEnough = itemInBagCount >= itemCountForProduce;

                canCraft = canCraft && recipeItemEnough;

                string color = recipeItemEnough ? "green" : "red";

                recipesItemEnoughText.text = string.Format("<color={0}>{1}/{2}</color>", color, itemInBagCount, itemCountForProduce);
            }

            craftButton.interactable = canCraft;
        }
        private void AddCharacterToPaper(char character, int count)
        {
            Transform characterCell = characterPool.GetInstance <Transform> (characterModel.gameObject, charactersContainer);

            characterCell.GetComponent <CharacterCell> ().SetUpCharacterCell(character, count);
        }
Example #27
0
        // 受到伤害文本动画
        public void PlayHurtTextAnim(FightText ft)
        {
            // 从缓存池获取文本模型
            Text hurtText = fightTextPool.GetInstance <Text> (fightTextModel.gameObject, fightTextContainer);

            Vector3 originHurtPos = Vector3.zero;
            Vector3 firstHurtPos  = Vector3.zero;
            Vector3 secondHurtPos = Vector3.zero;
            Vector3 originTintPos = Vector3.zero;
            Vector3 finalTintPos  = Vector3.zero;

            switch (direction)
            {
            case MyTowards.Left:
                originHurtPos = basePosition + new Vector3(-50f, 50f, 0);
                firstHurtPos  = originHurtPos + new Vector3(-Random.Range(80, 100), Random.Range(0, 10), 0);
                secondHurtPos = firstHurtPos + new Vector3(-Random.Range(20, 30), Random.Range(0, 2), 0);
                originTintPos = originHurtPos + new Vector3(-100f, 100f, 0);
                break;

            case MyTowards.Right:
                originHurtPos = basePosition + new Vector3(50f, 50f, 0);
                firstHurtPos  = originHurtPos + new Vector3(Random.Range(80, 100), Random.Range(0, 10), 0);
                secondHurtPos = firstHurtPos + new Vector3(Random.Range(20, 30), Random.Range(0, 2), 0);
                originTintPos = originHurtPos + new Vector3(100f, 100f, 0);
                break;
            }

            hurtText.transform.localPosition = originHurtPos;

            hurtText.text = string.Format("<b>{0}</b>", ft.text);

            hurtText.gameObject.SetActive(true);

            // 根据效果类型播放效果文本动画
            switch (ft.specialResult)
            {
            case SpecialAttackResult.None:
                break;

            case SpecialAttackResult.Crit:
                string tintStr = "<color=red>暴击</color>";
                PlayTintTextAnim(tintStr, originTintPos);
                break;

            case SpecialAttackResult.Miss:
                tintStr = "<color=gray>Miss</color>";
                PlayTintTextAnim(tintStr, originTintPos);
                return;
            }

            float firstJumpPower = Random.Range(100f, 120f);

            // 伤害文本跳跃动画
            hurtText.transform.DOLocalJump(firstHurtPos, firstJumpPower, 1, 0.35f).OnComplete(() => {
                float secondJumpPower = Random.Range(20f, 30f);

                // 伤害文本二次跳跃
                hurtText.transform.DOLocalJump(secondHurtPos, secondJumpPower, 1, 0.15f).OnComplete(() => {
                    hurtText.text = "";
                    hurtText.gameObject.SetActive(false);
                    fightTextPool.AddInstanceToPool(hurtText.gameObject);
                });
            });
        }
Example #28
0
        public void SetUpLevelTransportView(HLHNPC npc, LevelTransportSelectCallBack levelSelectCallBack, CallBack quitCallBack)
        {
            this.levelSelectCallBack = levelSelectCallBack;
            this.quitCallBack        = quitCallBack;

            this.gameObject.SetActive(true);

            List <int> validTravelLevelIds = npc.GetValidTravelLevelIds();

            levelChoiceContainer.localPosition = Vector3.zero;

            levelChoicePool.AddChildInstancesToPool(levelChoiceContainer);

            bool hasValidTranportLevel = validTravelLevelIds.Count > 0;

            for (int i = 0; i < validTravelLevelIds.Count; i++)
            {
                int transportLevel = validTravelLevelIds[i];

                Button levelChoice = levelChoicePool.GetInstance <Button>(levelChoiceModel.gameObject, levelChoiceContainer);

                levelChoice.GetComponentInChildren <Text>().text = string.Format("第{0}层", transportLevel + 1);

                levelChoice.onClick.RemoveAllListeners();

                levelChoice.onClick.AddListener(delegate
                {
                    if (Player.mainPlayer.totalGold < transportCost)
                    {
                        tintHUD.SetUpSingleTextTintHUD("金币不足");
                        return;
                    }

                    Player.mainPlayer.totalGold -= transportCost;

                    GameManager.Instance.gameDataCenter.currentMapEventsRecord.Reset();
                    GameManager.Instance.persistDataManager.ClearCurrentMapWordsRecordAndSave();

                    if (levelSelectCallBack != null)
                    {
                        levelSelectCallBack(transportLevel);
                    }

                    this.gameObject.SetActive(false);
                });
            }


            noValidLevelHint.enabled = !hasValidTranportLevel;
            //upButton.gameObject.SetActive(hasValidTranportLevel);
            //downButton.gameObject.SetActive(hasValidTranportLevel);

            if (zoomCoroutine != null)
            {
                StopCoroutine(zoomCoroutine);
            }

            zoomCoroutine = HUDZoomIn();

            StartCoroutine(zoomCoroutine);
        }