private CustomizerGestureModel processGesture(ITouch touch, CustomizerGestureModel gestureModel) { gestureModel.TouchDownStartPos = touch.position; if (isOverUI(touch)) { if (EventSystem.current.currentSelectedGameObject != null) { EquipmentIcon component = EventSystem.current.currentSelectedGameObject.GetComponent <EquipmentIcon>(); if (component != null) { gestureModel.TouchDownStartArea = AreaTouchedEnum.INVENTORY_BUTTON; gestureModel.DragIconTexture = (component.GetIcon() as Texture2D); gestureModel.ItemId = component.EquipmentId; gestureModel.IsEquippable = component.IsEquippable; } } } else if (isTouchBlockedByUIControls(touch)) { gestureModel.TouchDownStartArea = AreaTouchedEnum.CLICK_BLOCKING_UI; } else { gestureModel.TouchDownStartArea = AreaTouchedEnum.PENGUIN_PREVIEW_ROTATION_AREA; } return(gestureModel); }
private void setActionState() { if (actionSpriteSelector == null) { actionSpriteSelector = ActionButton.GetComponentInChildren <SpriteSelector>(); } if (iconItem == null) { iconItem = GetComponentInChildren <EquipmentIcon>(); } if (Action == ActionType.Hide) { iconItem.ItemIcon.color = HIDDEN_ITEM_COLOR; actionSpriteSelector.SelectSprite(2); } else if (Action == ActionType.Show) { actionSpriteSelector.SelectSprite(1); iconItem.ItemIcon.color = SHOWN_ITEM_COLOR; } else { actionSpriteSelector.SelectSprite(0); iconItem.ItemIcon.color = SHOWN_ITEM_COLOR; } }
private void setItemView(EquipmentIcon iconItem, InventoryIconModel <DCustomEquipment> dataModel) { bool isPlayerMember = Service.Get <CPDataEntityCollection>().IsLocalPlayerMember() || !model.InventoryData.IsEquipmentMemberOnly(dataModel.Data); iconItem.SetupView(dataModel, isPlayerMember); itemImageBuilder.RequestImage(dataModel.Data, iconItem.SetIcon); }
public void Update() { foreach (var hud in HUD.readOnlyInstanceList) { if (hud == null && hud.itemInventoryDisplay == null) { continue; } List <ItemIcon> itemIcons = hud.itemInventoryDisplay.GetFieldValue <List <ItemIcon> >("itemIcons"); foreach (var icon in itemIcons) { if (icon.GetComponent <ItemDropper>() == null) { ItemDropper dropper = icon.gameObject.AddComponent <ItemDropper>(); dropper.master = master; } } if (hud.equipmentIcons.Length > 0) { EquipmentIcon equipmentIcon = hud.equipmentIcons[0]; if (equipmentIcon.targetInventory == inventory && equipmentIcon.GetComponent <EquipmentDropper>() == null) { EquipmentDropper dropper = equipmentIcon.gameObject.AddComponent <EquipmentDropper>(); dropper.master = master; } } } }
private void UpdateScoreboard(HUD hud, FieldInfo fieldInfo) { ScoreboardController scoreboardController = hud.scoreboardPanel.GetComponent <ScoreboardController>(); if (scoreboardController != null) { UIElementAllocator <ScoreboardStrip> elements = (UIElementAllocator <ScoreboardStrip>) typeof(ScoreboardController) .GetField("stripAllocator", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(scoreboardController); if (elements != null) { List <ScoreboardStrip> scoreboardStrips = (List <ScoreboardStrip>) typeof(UIElementAllocator <ScoreboardStrip>) .GetField("elementControllerComponentsList", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(elements); foreach (ScoreboardStrip scoreboardStrip in scoreboardStrips) { if (scoreboardStrip == null) { continue; } if (fieldInfo != null) { List <ItemIcon> itemIcons = (List <ItemIcon>)fieldInfo.GetValue(scoreboardStrip.itemInventoryDisplay); foreach (ItemIcon itemIcon in itemIcons) { if (itemIcon != null && itemIcon.GetComponent <DropItemController>() == null) { DropItemController dropItemController = itemIcon.gameObject.AddComponent <DropItemController>(); Inventory inventory = (Inventory)typeof(ItemInventoryDisplay).GetField("inventory", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(scoreboardStrip.itemInventoryDisplay); dropItemController.Inventory = inventory; dropItemController.ItemIcon = itemIcon; dropItemController.SendDropItemToServer = SendDropItemRequest; } } } EquipmentIcon equipmentIcon = scoreboardStrip.equipmentIcon; if (equipmentIcon != null && equipmentIcon.GetComponent <DropItemController>() == null) { if (equipmentIcon.targetInventory == null) { continue; } EquipmentIndex equipmentIndex = (equipmentIcon.displayAlternateEquipment) ? equipmentIcon.targetInventory.alternateEquipmentIndex : equipmentIcon.targetInventory.currentEquipmentIndex; if (equipmentIndex != EquipmentIndex.None) { DropItemController dropItemController = equipmentIcon.gameObject.AddComponent <DropItemController>(); dropItemController.Inventory = equipmentIcon.targetInventory; dropItemController.EquipmentIcon = equipmentIcon; dropItemController.SendDropEquipmentToServer = SendDropEquipmentRequest; } } } } } }
public void UpdatePickupTooltip(EquipmentIcon icon, EquipmentIndex equipIdx) { PickupIndex pickupIdx = PickupCatalog.FindPickupIndex(equipIdx); if (pickupIdx != PickupIndex.none) { UpdatePickupTooltip(icon.tooltipProvider, pickupIdx); } }
//Removes a piece of equipment from a team when the equipment is clicked on //the Team panel. public void RemoveTeamEquipment(object sender, RoutedEventArgs e) { EquipmentIcon equip = (EquipmentIcon)sender; Team relatedTeam = equip.getTeam(); Equipment relatedEquipment = equip.getEquip(); relatedEquipment.setAssigned(false); relatedTeam.RemoveEquipment(relatedEquipment); }
/// <summary> /// 属性加成计算 /// </summary> /// <param name="icon">子物体脚本</param> private void Property(EquipmentIcon icon) { if (icon != null) { ObjectInfo info = ObjectsInfo.instance.GetObjectInfoById(icon.id); this.addAttack += info.Attack; this.addDef += info.Def; this.addSpeed += info.Speed; } }
private void showRemoveItemPrompt(PromptLoaderCMD promptLoader, EquipmentIcon iconItem) { Texture2D texture2D = (Texture2D)iconItem.GetIcon(); Sprite sprite = Sprite.Create(texture2D, new Rect(0f, 0f, texture2D.width, texture2D.height), new Vector2(0.5f, 0.5f)); promptLoader.PromptData.SetImage(DPrompt.PROMPT_IMAGE_DEFAULT, sprite); Service.Get <PromptManager>().ShowPrompt(promptLoader.PromptData, delegate(DPrompt.ButtonFlags pressed) { deleteConfirmationButton(pressed, iconItem.EquipmentId); }, promptLoader.Prefab); }
private static void AttachZetDropHandler(EquipmentIcon icon) { if (icon.GetComponent <ZetDropHandler>() != null) { return; } var dropItemHandler = icon.transform.gameObject.AddComponent <ZetDropHandler>(); dropItemHandler.GetInventory = () => icon.targetInventory; dropItemHandler.EquipmentIcon = true; }
private static void AttachZetAspectsConvertHandler(EquipmentIcon icon) { if (icon.GetComponent <ZetAspectsConvertHandler>() != null) { return; } ZetAspectsConvertHandler handler = icon.transform.gameObject.AddComponent <ZetAspectsConvertHandler>(); handler.GetInventory = () => icon.targetInventory; handler.GetPCMC = () => icon.playerCharacterMasterController; }
private void removeItem(EditableItem editableItem) { EquipmentIcon iconItem = editableItem.GetComponentInChildren <EquipmentIcon>(); indexToRemove = editableItem.GetCurrentIndex(); PromptDefinition promptDefinition = Service.Get <PromptManager>().GetPromptDefinition("DeleteEquipmentPrompt"); PromptLoaderCMD promptLoaderCMD = new PromptLoaderCMD(this, promptDefinition, delegate(PromptLoaderCMD loader) { showRemoveItemPrompt(loader, iconItem); }); promptLoaderCMD.Execute(); }
private void EquipmentIcon_Update(On.RoR2.UI.EquipmentIcon.orig_Update orig, EquipmentIcon self) { orig(self); if (self.targetEquipmentSlot && self.targetEquipmentSlot.equipmentIndex == equipmentDef.equipmentIndex) { var component = self.targetEquipmentSlot.GetComponent <MysticsItemsOmarHackToolBehaviour>(); if (component && component.usesLeft <= 0) { if (self.iconImage) { self.iconImage.color = Color.gray; } } } }
private bool onItemReady(EditableItemEvents.ItemReady evt) { int index = evt.Index; EditableItem item = evt.Item; EquipmentIcon componentInChildren = item.GetComponentInChildren <EquipmentIcon>(); switch (index) { case 0: item.ShowActionButton = false; componentInChildren.SetupCreateButton(); break; case 1: item.ShowActionButton = false; componentInChildren.SetupCatalogButton(); break; default: { componentInChildren.SetupEquipmentButton(); long key = model.DisplayedInventory[index - 2]; InventoryIconModel <DCustomEquipment> inventoryIconModel = model.InventoryData.Inventory[key]; item.ShowActionButton = true; item.Action = EditableItem.ActionType.Delete; if (templateDefinitions.TryGetValue(inventoryIconModel.Data.DefinitionId, out TemplateDefinition value) && !value.IsEditable) { if (inventoryIconModel.IsHidden) { item.Action = EditableItem.ActionType.Hide; } else { item.Action = EditableItem.ActionType.Show; } } AccessibilitySettings component = componentInChildren.GetComponent <AccessibilitySettings>(); if (component != null) { component.CustomToken = value.Name; } setItemView(componentInChildren, inventoryIconModel); break; } } return(false); }
//Filling up the page with the information on the team private void PopulateInfo() { equipmentStackPanel.Children.RemoveRange(1, equipmentStackPanel.Children.Count - 1); teamName.Name = team.getName(); if (team.getName().Length == 1) { teamName.Text = TechnicalServices.getPhoneticLetter(team.getName()); } else { teamName.Text = team.getName(); } ImageBrush img = new ImageBrush(); img.ImageSource = TechnicalServices.getImage(team.getHighestLevelOfTraining()); teamTraining.Fill = img; List <Equipment> equipmentList = team.getEquipmentList(); foreach (Equipment eq in equipmentList) { EquipmentIcon equip = new EquipmentIcon(team, this, 27, eq); equip.setImage(TechnicalServices.getImage(eq.getEquipmentType())); equipmentStackPanel.Children.Add(equip); } TeamMember member = null; int position = 0; while ((member = team.getMember(position++)) != null) { Grid memberLine = (Grid)informations.Children[position]; memberLine.Visibility = System.Windows.Visibility.Visible; member.setNameGrid(memberLine); Label memberName = (Label)memberLine.Children[0]; memberName.Content = member.getName(); memberName.ToolTip = DepartureTimeToString(member); Rectangle memberTraining = (Rectangle)memberLine.Children[1]; ImageBrush img2 = new ImageBrush(); img2.ImageSource = TechnicalServices.getImage(member.getTrainingLevel()); memberTraining.Fill = img2; } }
private bool onEditableItemActionButtonClicked(EditableItemEvents.ActionButtonClicked evt) { EditableItem item = evt.Item; if (evt.Action == EditableItem.ActionType.Delete) { removeItem(item); } else if (evt.Action == EditableItem.ActionType.Hide) { EquipmentIcon componentInChildren = item.GetComponentInChildren <EquipmentIcon>(); model.HideItem(componentInChildren.EquipmentId); } else if (evt.Action == EditableItem.ActionType.Show) { EquipmentIcon componentInChildren = item.GetComponentInChildren <EquipmentIcon>(); model.ShowItem(componentInChildren.EquipmentId); } return(false); }
public void OnPointerClick(PointerEventData eventData) { if (master != null && master.playerCharacterMasterController != null) { EquipmentIcon equipmentIcon = GetComponent <EquipmentIcon>(); if (!equipmentIcon.hasEquipment) { return; } EquipmentIndex equipmentIndex = equipmentIcon.targetEquipmentSlot.equipmentIndex; if (NetworkServer.active) { ServerStuffDropper.DropEquipment(master, equipmentIndex); } else { if (ClientScene.readyConnection == null) { Debug.LogError("Connection is not ready."); } ClientScene.readyConnection.Send(ConversionArtifactMod.msgEquipmentDropType, new EquipmentDropMessage(equipmentIndex)); } } }
private void EquipmentIconOnUpdate(On.RoR2.UI.EquipmentIcon.orig_Update orig, EquipmentIcon self) { orig(self); var feedback = self.GetComponent <DurabilityFeedback>(); if (feedback == null) { feedback = self.gameObject.AddComponent <DurabilityFeedback>(); } var master = self.playerCharacterMasterController?.master; if (master != null) { var tracker = master.GetComponent <DurabilityTracker>(); if (tracker == null) { tracker = master.gameObject.AddComponent <DurabilityTracker>(); tracker.durability = FullDurability; tracker.durabilityAlt = FullDurability; } bool useAlt = self.targetEquipmentSlot.activeEquipmentSlot == 0 ? self.displayAlternateEquipment : !self.displayAlternateEquipment; feedback.percentDurability = useAlt ? tracker.durabilityAlt : tracker.durability; feedback.showBar = self.hasEquipment; } }
/// <summary> /// 穿戴装备 /// </summary> /// <param name="id">穿戴的装备</param> /// <returns>穿上与否</returns> public bool Dress(int id) { ObjectInfo info = ObjectsInfo.instance.GetObjectInfoById(id); if (PlayerStatus.Instance.heroType == HeroType.Magician) { if (info.ApplicationType == ApplicationType.Swordman) { return(false); } } if (PlayerStatus.Instance.heroType == HeroType.Swordman) { if (info.ApplicationType == ApplicationType.Magician) { return(false); } } GameObject parent = null; switch (info.DressType) { case DressType.Headgear: parent = HeadgearItem; break; case DressType.Armor: parent = ArmorItem; break; case DressType.LeftHand: parent = LeftHandItem; break; case DressType.RightHand: parent = RightHandItem; break; case DressType.Shoe: parent = ShoeItem; break; case DressType.Accessory: parent = AccessoryItem; break; } //获取对应格子的子物体上的脚本,如果为空说明没有子物体 EquipmentIcon icon = parent.GetComponentInChildren <EquipmentIcon>(); if (icon != null) { Inventory.instance.GetID(icon.id); icon.UpdateShow(info); } else { GameObject go = Instantiate(EquipmentIcon, parent.GetComponent <RectTransform>()); go.GetComponent <EquipmentIcon>().UpdateShow(info); } UpdateProperty(); Debug.Log("数值变化:" + addAttack + "+" + addDef + "+" + addSpeed); return(true); }
internal void EquipmentIcon_Update(On.RoR2.UI.EquipmentIcon.orig_Update orig, EquipmentIcon self) { orig(self); if (!this.EquipmentIconDirty.ContainsKey(self)) { this.EquipmentIconDirty.Add(self, true); this.lastEquipment.Add(self, null); } if ((mod.config.AdvancedIconsEquipementAdvancedDescriptions.Value || mod.config.AdvancedIconsEquipementShowBaseCooldown.Value || mod.config.AdvancedIconsEquipementShowCalculatedCooldown.Value) && (self.currentDisplayData.equipmentDef != this.lastEquipment[self] || this.EquipmentIconDirty[self]) && self.currentDisplayData.hasEquipment && self.tooltipProvider) { this.lastEquipment[self] = self.currentDisplayData.equipmentDef; this.EquipmentIconDirty[self] = false; BetterUI.sharedStringBuilder.Clear(); BetterUI.sharedStringBuilder.Append(Language.GetString(mod.config.AdvancedIconsEquipementAdvancedDescriptions.Value ? self.currentDisplayData.equipmentDef.descriptionToken : self.currentDisplayData.equipmentDef.pickupToken)); if (mod.config.AdvancedIconsEquipementShowBaseCooldown.Value || mod.config.AdvancedIconsEquipementShowCalculatedCooldown.Value) { BetterUI.sharedStringBuilder.Append("\n"); } if (mod.config.AdvancedIconsEquipementShowBaseCooldown.Value) { BetterUI.sharedStringBuilder.Append("\nBase Cooldown: <style=cIsDamage>"); BetterUI.sharedStringBuilder.Append(self.currentDisplayData.equipmentDef.cooldown); BetterUI.sharedStringBuilder.Append("</style> second"); if (self.currentDisplayData.equipmentDef.cooldown != 1) { BetterUI.sharedStringBuilder.Append("s"); } } if (mod.config.AdvancedIconsEquipementShowCalculatedCooldown.Value) { inventory = self.targetInventory; if (!inventory && mod.HUD.targetBodyObject) { targetbody = mod.HUD.targetBodyObject.GetComponent <CharacterBody>(); if (targetbody) { inventory = targetbody.inventory; } } if (inventory) { float reduction = (float)Math.Pow(0.85, inventory.itemStacks[(int)ItemCatalog.FindItemIndex("EquipmentMagazine")]); if (inventory.itemStacks[(int)ItemCatalog.FindItemIndex("AutoCastEquipment")] > 0) { reduction *= 0.5f * (float)Math.Pow(0.85, inventory.itemStacks[(int)ItemCatalog.FindItemIndex("AutoCastEquipment")] - 1); } if (reduction < 1) { BetterUI.sharedStringBuilder.Append("\nEffective Cooldown: <style=cIsHealing>"); BetterUI.sharedStringBuilder.Append((self.currentDisplayData.equipmentDef.cooldown * reduction).ToString("0.###")); BetterUI.sharedStringBuilder.Append("</style> second"); if (self.currentDisplayData.equipmentDef.cooldown != 1) { BetterUI.sharedStringBuilder.Append("s"); } } } } self.tooltipProvider.overrideBodyText = BetterUI.sharedStringBuilder.ToString(); } if (mod.config.AdvancedIconsEquipementShowCooldownStacks.Value && self.cooldownText && self.currentDisplayData.cooldownValue > 0) { self.cooldownText.gameObject.SetActive(true); } }