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); } } }
/// <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(); }); } }
/// <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; }
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(); }
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); } }
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(); //} }
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(); }); }
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); }
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; }
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; }
/// <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); } }
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(); }
/// <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); } }
// 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); }
// 受到伤害文本动画 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); }); }); }
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); }