/*public void shift_up() { * vertical_tile_offset++; * Debug.Log(vertical_tile_offset); * } * public void shift_down() { * vertical_tile_offset--; * Debug.Log(vertical_tile_offset); * } * public void shift_left() { * tile_size -= 0.5f; * Debug.Log(tile_size); * } * public void shift_right() { * tile_size += 0.5f; * Debug.Log(tile_size); * }*/ public void RegisterOffer(int ItemListLocation, CharacterBody CB) { // LocalUser User = LocalUserManager.GetFirstLocalUser(); // Chat.AddMessage($"Item Loc: {ItemListLocation}, Item List: {InvData.Count}, {InvData[ItemListLocation].item_index}"); ItemIndex item = InvData[ItemListLocation].item_index; Transform UserTransform = CB.transform; // Debug.Log(firstLocalUser.userProfile.name); CB.inventory.RemoveItem(item, 1); float player_rot = 0; Vector3 mod_rot = new Vector3((float)(Math.Cos(player_rot)) * 10, 20, (float)(Math.Sin(player_rot)) * 10); PickupDropletController.CreatePickupDroplet( new PickupIndex(item), UserTransform.position, mod_rot); string color_tag = "#" + ColorCatalog.GetColorHexString(ItemCatalog.GetItemDef(item).colorIndex); // Chat.AddMessage($"{CB.name} has dropped <color={color_tag}> {Language.GetString(ItemCatalog.GetItemDef(item).nameToken)} </color>"); sendChatMessage($"{CB.GetUserName()} has dropped <color={color_tag}> {Language.GetString(ItemCatalog.GetItemDef(item).nameToken)} </color>"); InvData[ItemListLocation].count -= 1; if (InvData[ItemListLocation].count <= 0) { InvData.RemoveAt(ItemListLocation); Destroy(TileList[TileList.Count - 1]); TileList.RemoveAt(TileList.Count - 1); } }
////// Hooks ////// private string CharacterBody_GetDisplayName(On.RoR2.CharacterBody.orig_GetDisplayName orig, CharacterBody self) { var retv = orig(self); if (self.name == "ItemDroneBody(Clone)") { var ward = self.GetComponent <ItemWard>(); if (!ward || ward.itemcounts.Count == 0) { return(retv); } var idef = ItemCatalog.GetItemDef(ward.itemcounts.First().Key); if (idef == null) { return(retv); } var color = "FFFFFF"; var itd = ItemTierCatalog.GetItemTierDef(idef.tier); if (itd) { color = ColorCatalog.GetColorHexString(itd.colorIndex); } return($"{retv} (<color=#{color}>{Language.GetString(idef.nameToken)}</color>)"); } return(retv); }
public static string TierToHexString(ItemTier tier) { switch (tier) { case ItemTier.Tier1: return(ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier1Item)); case ItemTier.Tier2: return(ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier2Item)); case ItemTier.Tier3: return(ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier3Item)); case ItemTier.Lunar: return(ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.LunarItem)); case ItemTier.Boss: return(ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.BossItem)); case ItemTier.NoTier: return(ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Unaffordable)); default: return("FFF"); } }
private string GetStylizedPickupName(PickupDef pickup) { var(nameToken, colorIndex) = pickup switch { PickupDef _ when EquipmentCatalog.GetEquipmentDef(pickup.equipmentIndex) is EquipmentDef def => (def.nameToken, def.colorIndex), PickupDef _ when ItemCatalog.GetItemDef(pickup.itemIndex) is ItemDef def => (def.nameToken, def.colorIndex), _ => ("", ColorCatalog.ColorIndex.None), }; var color = ColorCatalog.GetColorHexString(colorIndex); return($"<color=#{color}>{Language.GetString(nameToken)}</color>"); }
public void wispShrineActivation(Interactor interactor, float monsterCredit) { combatDirector.enabled = true; combatDirector.monsterCredit += monsterCredit; combatDirector.maximumNumberToSpawnBeforeSkipping = wispCount; combatDirector.monsterSpawnTimer = 0f; if (wispItem) { var itemColor = ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier1Item); if (tier == 2) { itemColor = ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier2Item); } if (tier == 3) { itemColor = ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier3Item); } if (acceptNext) { Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectAsCharacterBody = interactor.GetComponent <CharacterBody>(), baseToken = "SHRINE_WISP_ACCEPT_MESSAGE", paramTokens = new string[] { itemColor, wispItem.nameToken, } }); } else { Chat.SendBroadcastChat(new Chat.SubjectFormatChatMessage { subjectAsCharacterBody = interactor.GetComponent <CharacterBody>(), baseToken = "SHRINE_WISP_DENY_MESSAGE", paramTokens = new string[] { itemColor, wispItem.nameToken, } }); } } }
public static void SendColored(string?message, ColorCatalog.ColorIndex color, string?messageFrom) { SendColored(message, ColorCatalog.GetColorHexString(color), messageFrom); }
public static string ToHex(this ColorCatalog.ColorIndex colorIndex, bool excludeSymbol = false) { return((excludeSymbol ? "" : "#") + ColorCatalog.GetColorHexString(colorIndex)); }
private void GlobalEventManager_onCharacterDeathGlobal(DamageReport report) { if (IsActiveAndEnabled() && report.victimIsBoss && TeleporterInteraction.instance && TeleporterInteraction.instance.bossGroup.combatSquad.memberCount <= 1) { shouldDeferDrops = false; lootShowerLoc = report.victim.transform.position + Vector3.up * 3f; var nodeGraph = SceneInfo.instance.GetNodeGraph(MapNodeGroup.GraphType.Ground); launchVelocities = CollectNearestNodeLaunchVelocities(nodeGraph, deferredDrops.Count, 10f, 1000f, lootShowerLoc, 5f, 0.625f, 3f, 10, LayerIndex.world.mask | LayerIndex.entityPrecise.mask, QueryTriggerInteraction.Ignore); if (launchVelocities.Count < deferredDrops.Count) { var ls2 = TeleporterInteraction.instance.transform.position + Vector3.up * 3f; var lvel2 = CollectNearestNodeLaunchVelocities(nodeGraph, deferredDrops.Count, 10f, 1000f, ls2, 5f, 0.625f, 3f, 10, LayerIndex.world.mask | LayerIndex.entityPrecise.mask, QueryTriggerInteraction.Ignore); if (launchVelocities.Count == 0 && lvel2.Count == 0) { TinkersSatchelPlugin._logger.LogWarning("DelayLoot: found no free navnodes to drop items at, using fallback circle"); lootShowerLoc = ls2; for (var i = 0; i < deferredDrops.Count; i++) { var theta = (float)i / (float)deferredDrops.Count * Mathf.PI * 2f; launchVelocities.Add(new Vector3(Mathf.Cos(theta) * 10f, 20f, Mathf.Sin(theta) * 10f)); } } else if (lvel2.Count > launchVelocities.Count) { TinkersSatchelPlugin._logger.LogWarning("DelayLoot: couldn't find enough free navnodes to drop items at from boss, falling back to TP"); launchVelocities = lvel2; lootShowerLoc = ls2; } if (launchVelocities.Count < deferredDrops.Count) { TinkersSatchelPlugin._logger.LogWarning("DelayLoot: couldn't find enough free navnodes to drop items at from any source, some items will stack"); } } if (announceDrop == AnnounceDropMode.ItemTierCounts) { Dictionary <ItemTier, int> totalItemTiers = new Dictionary <ItemTier, int>(); int totalEquipments = 0; int totalLunarEquipments = 0; int totalOther = 0; foreach (var drop in deferredDrops) { if (drop && drop.TryGetComponent <PickupDropletController>(out var pickup)) { var pdef = PickupCatalog.GetPickupDef(pickup.pickupIndex); if (pdef != null) { if (pdef.itemIndex != ItemIndex.None && pdef.itemTier != ItemTier.NoTier) { if (!totalItemTiers.ContainsKey(pdef.itemTier)) { totalItemTiers[pdef.itemTier] = 0; } totalItemTiers[pdef.itemTier]++; } else if (pdef.equipmentIndex != EquipmentIndex.None) { if (pdef.isLunar) { totalLunarEquipments++; } else { totalEquipments++; } } else { totalOther++; } } else { totalOther++; } } else { totalOther++; } } List <string> displays = new List <string>(); if (totalItemTiers.ContainsKey(ItemTier.Tier1)) { displays.Add($"<color=#{ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier1Item)}>{totalItemTiers[ItemTier.Tier1]} tier-1 item{NPlur(totalItemTiers[ItemTier.Tier1])}</color>"); } if (totalItemTiers.ContainsKey(ItemTier.Tier2)) { displays.Add($"<color=#{ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier2Item)}>{totalItemTiers[ItemTier.Tier2]} tier-2 item{NPlur(totalItemTiers[ItemTier.Tier2])}</color>"); } if (totalItemTiers.ContainsKey(ItemTier.Tier3)) { displays.Add($"<color=#{ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Tier3Item)}>{totalItemTiers[ItemTier.Tier3]} tier-3 item{NPlur(totalItemTiers[ItemTier.Tier3])}</color>"); } if (totalItemTiers.ContainsKey(ItemTier.Lunar)) { displays.Add($"<color=#{ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.LunarItem)}>{totalItemTiers[ItemTier.Lunar]} lunar item{NPlur(totalItemTiers[ItemTier.Lunar])}</color>"); } if (totalItemTiers.ContainsKey(ItemTier.Boss)) { displays.Add($"<color=#{ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.BossItem)}>{totalItemTiers[ItemTier.Boss]} boss item{NPlur(totalItemTiers[ItemTier.Boss])}</color>"); } if (totalEquipments > 0) { displays.Add($"<color=#{ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.Equipment)}>{totalEquipments} equipment{NPlur(totalEquipments)}</color>"); } if (totalLunarEquipments > 0) { displays.Add($"<color=#{ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.LunarItem)}>{totalLunarEquipments} lunar equipment{NPlur(totalLunarEquipments)}</color>"); } int totalVoidCount = 0; if (totalItemTiers.ContainsKey(ItemTier.VoidTier1)) { totalVoidCount += totalItemTiers[ItemTier.VoidTier1]; } if (totalItemTiers.ContainsKey(ItemTier.VoidTier2)) { totalVoidCount += totalItemTiers[ItemTier.VoidTier2]; } if (totalItemTiers.ContainsKey(ItemTier.VoidTier3)) { totalVoidCount += totalItemTiers[ItemTier.VoidTier3]; } if (totalItemTiers.ContainsKey(ItemTier.VoidBoss)) { totalVoidCount += totalItemTiers[ItemTier.VoidBoss]; } if (totalVoidCount > 0) { displays.Add($"<color=#{ColorCatalog.GetColorHexString(ColorCatalog.ColorIndex.VoidItem)}>{totalVoidCount} void item{NPlur(totalVoidCount)}</color>"); } if (totalOther > 0) { displays.Add($"{totalOther} other drop{NPlur(totalOther)}"); } if (displays.Count == 0) { } else if (displays.Count == 1) { NetUtil.ServerSendGlobalChatMsg($"The boss's hoard of {displays[0]} is yours."); } else if (displays.Count == 2) { NetUtil.ServerSendGlobalChatMsg($"The boss's hoard of {String.Join(" and ", displays)} is yours."); } else { displays[displays.Count - 1] = "and " + displays[displays.Count - 1]; NetUtil.ServerSendGlobalChatMsg($"The boss's hoard of {String.Join(", ", displays)} is yours."); } } else if (announceDrop == AnnounceDropMode.TotalItemCount && deferredDrops.Count > 0) { NetUtil.ServerSendGlobalChatMsg($"The boss's hoard of {deferredDrops.Count} drop{NPlur(deferredDrops.Count)} is yours."); } } }
public static void SendColored(string message, ColorCatalog.ColorIndex color) { SendColored(message, ColorCatalog.GetColorHexString(color)); }
public override string ConstructChatString() { EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(equipmentIndex); return($"{playerName} dropped <color=#{ColorCatalog.GetColorHexString(equipmentDef.colorIndex)}>{Language.GetString(equipmentDef.nameToken)}</color>."); }
public override string ConstructChatString() { ItemDef itemDef = ItemCatalog.GetItemDef(itemIndex); return($"{playerName} dropped <color=#{ColorCatalog.GetColorHexString(itemDef.colorIndex)}>{Language.GetString(itemDef.nameToken)}</color>."); }