using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Text;
using BepInEx;
using BepInEx.Configuration;
using On.RoR2;
using On.RoR2.UI;
using RoR2;
using RoR2.UI;
using TMPro;
using UnityEngine;
using UnityEngine.SceneManagement;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("JPFontMod")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("JPFontMod")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("fb60a9b5-06a1-4228-b141-0b50fcef0e2e")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace JPLangMod;
[BepInPlugin("com.yourname.jpfontmod", "JPLangMod", "1.0.0")]
public class JPLangMod : BaseUnityPlugin
{
private TMP_FontAsset jpFont;
private TMP_FontAsset fallbackFont;
public const string PluginGUID = "com.yourname.detaileditemessages";
public const string PluginName = "Detailed Item Messages";
public const string PluginVersion = "1.0.0";
private ConfigEntry<bool> enableDetailedMessages;
private ConfigEntry<bool> showItemTier;
private ConfigEntry<bool> showStackCount;
private ConfigEntry<bool> showItemDescription;
private ConfigEntry<float> messageDuration;
private Dictionary<ItemIndex, string> itemDescriptions = new Dictionary<ItemIndex, string>();
private void Awake()
{
//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
//IL_00bd: Expected O, but got Unknown
//IL_0187: Unknown result type (might be due to invalid IL or missing references)
//IL_0191: Expected O, but got Unknown
//IL_0199: Unknown result type (might be due to invalid IL or missing references)
//IL_01a3: Expected O, but got Unknown
//IL_01ab: Unknown result type (might be due to invalid IL or missing references)
//IL_01b5: Expected O, but got Unknown
string location = Assembly.GetExecutingAssembly().Location;
string directoryName = Path.GetDirectoryName(location);
string text = Path.Combine(directoryName, "jpfontbundle");
AssetBundle val = AssetBundle.LoadFromFile(text);
if ((Object)(object)val == (Object)null)
{
((BaseUnityPlugin)this).Logger.LogError((object)("AssetBundle load failed: " + text));
return;
}
jpFont = val.LoadAsset<TMP_FontAsset>("LogoTypeGothicC");
fallbackFont = val.LoadAsset<TMP_FontAsset>("LogoTypeGothicR");
if ((Object)(object)jpFont == (Object)null)
{
((BaseUnityPlugin)this).Logger.LogError((object)"JPFont アセットが AssetBundle 内に見つかりません");
return;
}
((BaseUnityPlugin)this).Logger.LogInfo((object)"日本語フォント読み込み成功");
HGTextMeshProUGUI.Awake += new hook_Awake(ReplaceFontHook);
ApplyFontToAllExistingTMPText();
SceneManager.sceneLoaded += delegate
{
ApplyFontToAllExistingTMPText();
};
enableDetailedMessages = ((BaseUnityPlugin)this).Config.Bind<bool>("General", "EnableDetailedMessages", true, "詳細なアイテムメッセージを有効にする");
showItemTier = ((BaseUnityPlugin)this).Config.Bind<bool>("Display", "ShowItemTier", true, "アイテムの階級を表示する");
showStackCount = ((BaseUnityPlugin)this).Config.Bind<bool>("Display", "ShowStackCount", true, "現在のスタック数を表示する");
showItemDescription = ((BaseUnityPlugin)this).Config.Bind<bool>("Display", "ShowItemDescription", true, "アイテムの説明を表示する");
messageDuration = ((BaseUnityPlugin)this).Config.Bind<float>("Display", "MessageDuration", 10f, "メッセージの表示時間(秒)");
Inventory.GiveItem_ItemIndex_int += new hook_GiveItem_ItemIndex_int(Inventory_GiveItem);
Inventory.SetEquipmentIndex += new hook_SetEquipmentIndex(Inventory_SetEquipmentIndex);
Chat.AddPickupMessage += new hook_AddPickupMessage(Chat_AddPickupMessage);
((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Detailed Item Messages loaded successfully!");
}
private void ReplaceFontHook(orig_Awake orig, HGTextMeshProUGUI self)
{
orig.Invoke(self);
ApplyFont((TMP_Text)(object)self);
}
private void ApplyFontToAllExistingTMPText()
{
Object[] array = Resources.FindObjectsOfTypeAll<Object>();
foreach (Object val in array)
{
TMP_Text val2 = (TMP_Text)(object)((val is TMP_Text) ? val : null);
if (val2 != null)
{
ApplyFont(val2);
}
}
}
private void ApplyFont(TMP_Text text)
{
if (!((Object)(object)jpFont == (Object)null))
{
text.font = jpFont;
text.fontSharedMaterial = ((TMP_Asset)jpFont).material;
if ((Object)(object)fallbackFont != (Object)null)
{
text.font.fallbackFontAssetTable = new List<TMP_FontAsset> { fallbackFont };
}
else
{
text.font.fallbackFontAssetTable?.Clear();
}
text.ForceMeshUpdate(false, false);
}
}
private void Inventory_GiveItem(orig_GiveItem_ItemIndex_int orig, Inventory self, ItemIndex itemIndex, int count)
{
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0067: Unknown result type (might be due to invalid IL or missing references)
orig.Invoke(self, itemIndex, count);
if (!enableDetailedMessages.Value)
{
return;
}
CharacterMaster component = ((Component)self).GetComponent<CharacterMaster>();
if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.playerCharacterMasterController))
{
LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
if (firstLocalUser != null && (Object)(object)firstLocalUser.cachedMasterController == (Object)(object)component.playerCharacterMasterController)
{
DisplayDetailedItemMessage(itemIndex, component);
}
}
}
private void Inventory_SetEquipmentIndex(orig_SetEquipmentIndex orig, Inventory self, EquipmentIndex newEquipmentIndex)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_000a: Unknown result type (might be due to invalid IL or missing references)
//IL_0025: Unknown result type (might be due to invalid IL or missing references)
//IL_0027: Invalid comparison between Unknown and I4
//IL_002f: Unknown result type (might be due to invalid IL or missing references)
//IL_0030: Unknown result type (might be due to invalid IL or missing references)
//IL_0087: Unknown result type (might be due to invalid IL or missing references)
EquipmentIndex currentEquipmentIndex = self.currentEquipmentIndex;
orig.Invoke(self, newEquipmentIndex);
if (!enableDetailedMessages.Value || (int)newEquipmentIndex == -1 || newEquipmentIndex == currentEquipmentIndex)
{
return;
}
CharacterMaster component = ((Component)self).GetComponent<CharacterMaster>();
if (Object.op_Implicit((Object)(object)component) && Object.op_Implicit((Object)(object)component.playerCharacterMasterController))
{
LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
if (firstLocalUser != null && (Object)(object)firstLocalUser.cachedMasterController == (Object)(object)component.playerCharacterMasterController)
{
DisplayDetailedEquipmentMessage(newEquipmentIndex, component);
}
}
}
private void DisplayDetailedEquipmentMessage(EquipmentIndex equipmentIndex, CharacterMaster master)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_00cc: Unknown result type (might be due to invalid IL or missing references)
EquipmentDef equipmentDef = EquipmentCatalog.GetEquipmentDef(equipmentIndex);
if (Object.op_Implicit((Object)(object)equipmentDef))
{
string @string = Language.GetString(equipmentDef.nameToken);
string string2 = Language.GetString(equipmentDef.descriptionToken);
float cooldown = equipmentDef.cooldown;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("<color=#FFA500>[装備取得] " + @string + "</color>");
if (showItemDescription.Value && !string.IsNullOrEmpty(string2))
{
stringBuilder.AppendLine();
stringBuilder.AppendLine("<color=#CCCCCC>効果: " + string2 + "</color>");
}
if (cooldown > 0f)
{
stringBuilder.AppendLine();
stringBuilder.Append($"<color=#87CEEB>クールダウン: {cooldown}秒</color>");
}
string equipmentInfo = GetEquipmentInfo(equipmentIndex);
if (!string.IsNullOrEmpty(equipmentInfo))
{
stringBuilder.AppendLine();
stringBuilder.Append("<color=#FFD700>" + equipmentInfo + "</color>");
}
Chat.AddMessage(stringBuilder.ToString());
}
}
private void Chat_AddPickupMessage(orig_AddPickupMessage orig, CharacterBody body, string pickupToken, Color32 pickupColor, uint pickupQuantity)
{
//IL_0040: Unknown result type (might be due to invalid IL or missing references)
if (enableDetailedMessages.Value && (Object)(object)body != (Object)null)
{
LocalUser firstLocalUser = LocalUserManager.GetFirstLocalUser();
if (firstLocalUser != null && (Object)(object)firstLocalUser.cachedBody == (Object)(object)body)
{
return;
}
}
orig.Invoke(body, pickupToken, pickupColor, pickupQuantity);
}
private string GetEquipmentInfo(EquipmentIndex equipmentIndex)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0007: Unknown result type (might be due to invalid IL or missing references)
//IL_001e: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Unknown result type (might be due to invalid IL or missing references)
//IL_003b: Unknown result type (might be due to invalid IL or missing references)
//IL_0041: Unknown result type (might be due to invalid IL or missing references)
//IL_0058: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0077: Unknown result type (might be due to invalid IL or missing references)
//IL_007d: Unknown result type (might be due to invalid IL or missing references)
//IL_0096: Unknown result type (might be due to invalid IL or missing references)
//IL_009c: Unknown result type (might be due to invalid IL or missing references)
//IL_00b5: Unknown result type (might be due to invalid IL or missing references)
//IL_00bb: Unknown result type (might be due to invalid IL or missing references)
//IL_00d4: Unknown result type (might be due to invalid IL or missing references)
//IL_00da: Unknown result type (might be due to invalid IL or missing references)
//IL_00f3: Unknown result type (might be due to invalid IL or missing references)
//IL_00f9: Unknown result type (might be due to invalid IL or missing references)
//IL_010f: Unknown result type (might be due to invalid IL or missing references)
//IL_0115: Unknown result type (might be due to invalid IL or missing references)
//IL_012b: Unknown result type (might be due to invalid IL or missing references)
//IL_0131: Unknown result type (might be due to invalid IL or missing references)
//IL_0147: Unknown result type (might be due to invalid IL or missing references)
//IL_014d: Unknown result type (might be due to invalid IL or missing references)
//IL_0163: Unknown result type (might be due to invalid IL or missing references)
//IL_0169: Unknown result type (might be due to invalid IL or missing references)
if (equipmentIndex == Equipment.Jetpack.equipmentIndex)
{
return "持続時間: 15秒、燃料消費で飛行";
}
if (equipmentIndex == Equipment.GoldGat.equipmentIndex)
{
return "持続時間: 14秒、お金を消費して攻撃";
}
if (equipmentIndex == Equipment.BFG.equipmentIndex)
{
return "チャージ時間: 2秒、貫通レーザー";
}
if (equipmentIndex == Equipment.Scanner.equipmentIndex)
{
return "持続時間: 10秒、敵とアイテムを透視";
}
if (equipmentIndex == Equipment.CritOnUse.equipmentIndex)
{
return "持続時間: 8秒、クリティカル率100%";
}
if (equipmentIndex == Equipment.DroneBackup.equipmentIndex)
{
return "持続時間: 25秒、4体のドローン召喚";
}
if (equipmentIndex == Equipment.Lightning.equipmentIndex)
{
return "範囲: 35m、4体まで連鎖";
}
if (equipmentIndex == Equipment.BurnNearby.equipmentIndex)
{
return "範囲: 15m、12秒間燃焼";
}
if (equipmentIndex == Equipment.Blackhole.equipmentIndex)
{
return "持続時間: 10秒、重力フィールド生成";
}
if (equipmentIndex == Equipment.Gateway.equipmentIndex)
{
return "持続時間: 30秒、2つのポータル設置";
}
if (equipmentIndex == Equipment.Fruit.equipmentIndex)
{
return "最大HPの50%を即座に回復";
}
if (equipmentIndex == Equipment.Meteor.equipmentIndex)
{
return "範囲: 16m、落下まで3秒";
}
if (equipmentIndex == Equipment.Saw.equipmentIndex)
{
return "持続時間: 3秒、回転ノコギリ射出";
}
return "";
}
private void DisplayDetailedItemMessage(ItemIndex itemIndex, CharacterMaster master)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0021: Unknown result type (might be due to invalid IL or missing references)
ItemDef itemDef = ItemCatalog.GetItemDef(itemIndex);
if (!Object.op_Implicit((Object)(object)itemDef))
{
return;
}
Inventory inventory = master.inventory;
int itemCount = inventory.GetItemCount(itemIndex);
string text = BuildDetailedMessage(itemDef, itemCount);
if (Object.op_Implicit((Object)(object)master.playerCharacterMasterController))
{
NetworkUser networkUser = master.playerCharacterMasterController.networkUser;
if (Object.op_Implicit((Object)(object)networkUser))
{
Chat.AddMessage("<color=#FFA500>[アイテム取得]</color>\n" + text);
}
}
}
private string BuildDetailedMessage(ItemDef itemDef, int stackCount)
{
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_0060: Unknown result type (might be due to invalid IL or missing references)
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("<color=" + GetTierColor(itemDef.tier) + ">" + Language.GetString(itemDef.nameToken) + "</color>");
if (showItemTier.Value)
{
string tierName = GetTierName(itemDef.tier);
stringBuilder.Append(" (" + tierName + ")");
}
if (showStackCount.Value && stackCount > 1)
{
stringBuilder.Append($" [スタック: {stackCount}]");
}
stringBuilder.AppendLine();
if (showItemDescription.Value)
{
string @string = Language.GetString(itemDef.descriptionToken);
if (!string.IsNullOrEmpty(@string))
{
stringBuilder.AppendLine("<color=#CCCCCC>効果: " + @string + "</color>");
}
}
string stackInfo = GetStackInfo(itemDef, stackCount);
if (!string.IsNullOrEmpty(stackInfo))
{
stringBuilder.AppendLine("<color=#FFD700>" + stackInfo + "</color>");
}
return stringBuilder.ToString().TrimEnd(Array.Empty<char>());
}
private string GetTierColor(ItemTier tier)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0004: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected I4, but got Unknown
//IL_003e: Unknown result type (might be due to invalid IL or missing references)
//IL_0043: Unknown result type (might be due to invalid IL or missing references)
//IL_005e: Unknown result type (might be due to invalid IL or missing references)
//IL_0063: Unknown result type (might be due to invalid IL or missing references)
//IL_007e: Unknown result type (might be due to invalid IL or missing references)
//IL_0083: Unknown result type (might be due to invalid IL or missing references)
//IL_00bf: Unknown result type (might be due to invalid IL or missing references)
//IL_00c4: Unknown result type (might be due to invalid IL or missing references)
//IL_009f: Unknown result type (might be due to invalid IL or missing references)
//IL_00a4: Unknown result type (might be due to invalid IL or missing references)
//IL_00e0: Unknown result type (might be due to invalid IL or missing references)
//IL_00e5: Unknown result type (might be due to invalid IL or missing references)
//IL_00fe: Unknown result type (might be due to invalid IL or missing references)
//IL_0103: Unknown result type (might be due to invalid IL or missing references)
//IL_011c: Unknown result type (might be due to invalid IL or missing references)
//IL_0121: Unknown result type (might be due to invalid IL or missing references)
//IL_013a: Unknown result type (might be due to invalid IL or missing references)
//IL_013f: Unknown result type (might be due to invalid IL or missing references)
return (int)tier switch
{
0 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)1))),
1 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)2))),
2 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)3))),
4 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)13))),
3 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)4))),
6 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)25))),
7 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)25))),
8 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)25))),
9 => "#" + ColorUtility.ToHtmlStringRGB(Color32.op_Implicit(ColorCatalog.GetColor((ColorIndex)25))),
_ => "#FFFFFF",
};
}
private string GetTierName(ItemTier tier)
{
//IL_0001: Unknown result type (might be due to invalid IL or missing references)
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_0003: Unknown result type (might be due to invalid IL or missing references)
//IL_0004: Unknown result type (might be due to invalid IL or missing references)
//IL_0005: Unknown result type (might be due to invalid IL or missing references)
//IL_0033: Expected I4, but got Unknown
return (int)tier switch
{
0 => "コモン",
1 => "アンコモン",
2 => "レジェンダリー",
4 => "ボス",
3 => "ルナ",
6 => "コモン(ボイド)",
7 => "アンコモン(ボイド)",
8 => "レジェンダリー(ボイド)",
9 => "ボス(ボイド)",
_ => "不明",
};
}
private string GetStackInfo(ItemDef itemDef, int stackCount)
{
//IL_0002: Unknown result type (might be due to invalid IL or missing references)
//IL_000c: Unknown result type (might be due to invalid IL or missing references)
//IL_0048: Unknown result type (might be due to invalid IL or missing references)
//IL_0052: Unknown result type (might be due to invalid IL or missing references)
//IL_0090: Unknown result type (might be due to invalid IL or missing references)
//IL_009a: Unknown result type (might be due to invalid IL or missing references)
//IL_00e3: Unknown result type (might be due to invalid IL or missing references)
//IL_00ed: Unknown result type (might be due to invalid IL or missing references)
//IL_012d: Unknown result type (might be due to invalid IL or missing references)
//IL_0137: Unknown result type (might be due to invalid IL or missing references)
//IL_0177: Unknown result type (might be due to invalid IL or missing references)
//IL_0181: Unknown result type (might be due to invalid IL or missing references)
//IL_01c1: Unknown result type (might be due to invalid IL or missing references)
//IL_01cb: Unknown result type (might be due to invalid IL or missing references)
//IL_0203: Unknown result type (might be due to invalid IL or missing references)
//IL_020d: Unknown result type (might be due to invalid IL or missing references)
//IL_023d: Unknown result type (might be due to invalid IL or missing references)
//IL_0247: Unknown result type (might be due to invalid IL or missing references)
//IL_026c: Unknown result type (might be due to invalid IL or missing references)
//IL_0276: Unknown result type (might be due to invalid IL or missing references)
//IL_02a5: Unknown result type (might be due to invalid IL or missing references)
//IL_02af: Unknown result type (might be due to invalid IL or missing references)
//IL_02df: Unknown result type (might be due to invalid IL or missing references)
//IL_02e9: Unknown result type (might be due to invalid IL or missing references)
//IL_0319: Unknown result type (might be due to invalid IL or missing references)
//IL_0323: Unknown result type (might be due to invalid IL or missing references)
//IL_035b: Unknown result type (might be due to invalid IL or missing references)
//IL_0365: Unknown result type (might be due to invalid IL or missing references)
//IL_0395: Unknown result type (might be due to invalid IL or missing references)
//IL_039f: Unknown result type (might be due to invalid IL or missing references)
//IL_03cf: Unknown result type (might be due to invalid IL or missing references)
//IL_03d9: Unknown result type (might be due to invalid IL or missing references)
//IL_0409: Unknown result type (might be due to invalid IL or missing references)
//IL_0413: Unknown result type (might be due to invalid IL or missing references)
//IL_0443: Unknown result type (might be due to invalid IL or missing references)
//IL_044d: Unknown result type (might be due to invalid IL or missing references)
//IL_047d: Unknown result type (might be due to invalid IL or missing references)
//IL_0487: Unknown result type (might be due to invalid IL or missing references)
//IL_04b7: Unknown result type (might be due to invalid IL or missing references)
//IL_04c1: Unknown result type (might be due to invalid IL or missing references)
//IL_04f1: Unknown result type (might be due to invalid IL or missing references)
//IL_04fb: Unknown result type (might be due to invalid IL or missing references)
//IL_0520: Unknown result type (might be due to invalid IL or missing references)
//IL_052a: Unknown result type (might be due to invalid IL or missing references)
//IL_054f: Unknown result type (might be due to invalid IL or missing references)
//IL_0559: Unknown result type (might be due to invalid IL or missing references)
//IL_0591: Unknown result type (might be due to invalid IL or missing references)
//IL_059b: Unknown result type (might be due to invalid IL or missing references)
//IL_05d3: Unknown result type (might be due to invalid IL or missing references)
//IL_05dd: Unknown result type (might be due to invalid IL or missing references)
//IL_060d: Unknown result type (might be due to invalid IL or missing references)
//IL_0617: Unknown result type (might be due to invalid IL or missing references)
//IL_063c: Unknown result type (might be due to invalid IL or missing references)
//IL_0646: Unknown result type (might be due to invalid IL or missing references)
//IL_067e: Unknown result type (might be due to invalid IL or missing references)
//IL_0688: Unknown result type (might be due to invalid IL or missing references)
//IL_06c9: Unknown result type (might be due to invalid IL or missing references)
//IL_06d3: Unknown result type (might be due to invalid IL or missing references)
//IL_06f8: Unknown result type (might be due to invalid IL or missing references)
//IL_0702: Unknown result type (might be due to invalid IL or missing references)
//IL_071c: Unknown result type (might be due to invalid IL or missing references)
//IL_0726: Unknown result type (might be due to invalid IL or missing references)
//IL_073d: Unknown result type (might be due to invalid IL or missing references)
//IL_0747: Unknown result type (might be due to invalid IL or missing references)
//IL_075e: Unknown result type (might be due to invalid IL or missing references)
//IL_0768: Unknown result type (might be due to invalid IL or missing references)
if (itemDef.itemIndex == Items.Syringe.itemIndex)
{
float num = 15f * (float)stackCount;
return $"攻撃速度: +{num}% ({15f}% × {stackCount})";
}
if (itemDef.itemIndex == Items.FlatHealth.itemIndex)
{
float num2 = 25f * (float)stackCount;
return $"最大HP: +{num2} ({25f} × {stackCount})";
}
if (itemDef.itemIndex == Items.Mushroom.itemIndex)
{
float num3 = 1.5f + (float)(stackCount - 1) * 1.5f;
float num4 = 4.5f * (float)stackCount;
return $"治療効果: 毎秒{num4}HP回復 (範囲: {num3}m)";
}
if (itemDef.itemIndex == Items.CritGlasses.itemIndex)
{
float num5 = 10f * (float)stackCount;
return $"クリティカル率: +{num5}% ({10f}% × {stackCount})";
}
if (itemDef.itemIndex == Items.Medkit.itemIndex)
{
float num6 = 20f + (float)(stackCount - 1) * 10f;
return $"回復量: {num6}HP (基本20HP + {stackCount - 1} × 10HP)";
}
if (itemDef.itemIndex == Items.PersonalShield.itemIndex)
{
float num7 = 25f + (float)(stackCount - 1) * 25f;
return $"シールド: {num7} (基本25 + {stackCount - 1} × 25)";
}
if (itemDef.itemIndex == Items.Crowbar.itemIndex)
{
float num8 = 75f + (float)(stackCount - 1) * 75f;
return $"90%以上HPの敵に +{num8}% ダメージ";
}
if (itemDef.itemIndex == Items.Hoof.itemIndex)
{
float num9 = 14f * (float)stackCount;
return $"移動速度: +{num9}%";
}
if (itemDef.itemIndex == Items.Feather.itemIndex)
{
return $"追加ジャンプ: +{stackCount}回";
}
if (itemDef.itemIndex == Items.ChainLightning.itemIndex)
{
int num10 = 2 + (stackCount - 1) * 2;
return $"連鎖対象数: {num10}体";
}
if (itemDef.itemIndex == Items.Seed.itemIndex)
{
float num11 = 1f * (float)stackCount;
return $"ダメージ時回復: {num11}HP";
}
if (itemDef.itemIndex == Items.Icicle.itemIndex)
{
float num12 = 10f * (float)stackCount;
return $"減速確率: +{num12}%";
}
if (itemDef.itemIndex == Items.GhostOnKill.itemIndex)
{
float num13 = 7f + (float)(stackCount - 1) * 7f;
return $"ゴースト持続時間: {num13}秒";
}
if (itemDef.itemIndex == Items.StunChanceOnHit.itemIndex)
{
float num14 = 5f * (float)stackCount;
return $"スタン確率: +{num14}%";
}
if (itemDef.itemIndex == Items.Tooth.itemIndex)
{
float num15 = 3f * (float)stackCount;
return $"キル時回復: {num15}HP";
}
if (itemDef.itemIndex == Items.IgniteOnKill.itemIndex)
{
float num16 = 10f * (float)stackCount;
return $"燃焼確率: +{num16}%";
}
if (itemDef.itemIndex == Items.Bandolier.itemIndex)
{
float num17 = 18f * (float)stackCount;
return $"弾薬ドロップ確率: {num17}%";
}
if (itemDef.itemIndex == Items.ArmorPlate.itemIndex)
{
float num18 = 5f * (float)stackCount;
return $"アーマー: +{num18}";
}
if (itemDef.itemIndex == Items.BleedOnHit.itemIndex)
{
float num19 = 10f * (float)stackCount;
return $"出血確率: +{num19}%";
}
if (itemDef.itemIndex == Items.SprintArmor.itemIndex)
{
float num20 = 30f * (float)stackCount;
return $"ダッシュ中アーマー: +{num20}";
}
if (itemDef.itemIndex == Items.SecondarySkillMagazine.itemIndex)
{
return $"セカンダリスキルチャージ: +{stackCount}";
}
if (itemDef.itemIndex == Items.UtilitySkillMagazine.itemIndex)
{
return $"ユーティリティスキルチャージ: +{stackCount}";
}
if (itemDef.itemIndex == Items.Dagger.itemIndex)
{
float num21 = 150f + (float)(stackCount - 1) * 150f;
return $"低HP時追加ダメージ: +{num21}%";
}
if (itemDef.itemIndex == Items.Behemoth.itemIndex)
{
float num22 = 4f + (float)(stackCount - 1) * 2.5f;
return $"爆発範囲: {num22}m";
}
if (itemDef.itemIndex == Items.Missile.itemIndex)
{
float num23 = 300f * (float)stackCount;
return $"ミサイルダメージ: {num23}%";
}
if (itemDef.itemIndex == Items.ExtraLife.itemIndex)
{
return $"復活回数: {stackCount}回";
}
if (itemDef.itemIndex == Items.KillEliteFrenzy.itemIndex)
{
float num24 = 4f + (float)(stackCount - 1) * 4f;
return $"フレンジー持続時間: {num24}秒";
}
if (itemDef.itemIndex == Items.Knurl.itemIndex)
{
float num25 = 40f * (float)stackCount;
float num26 = 1.6f * (float)stackCount;
return $"最大HP: +{num25}, HP回復: +{num26}/秒";
}
if (itemDef.itemIndex == Items.BeetleGland.itemIndex)
{
return $"ビートルガード召喚数: {stackCount}体";
}
if (itemDef.itemIndex == Items.LunarPrimaryReplacement.itemIndex)
{
return "プライマリスキルが「Visions of Heresy」に置換";
}
if (itemDef.itemIndex == Items.LunarSecondaryReplacement.itemIndex)
{
return "セカンダリスキルが「Hooks of Heresy」に置換";
}
if (itemDef.itemIndex == Items.LunarUtilityReplacement.itemIndex)
{
return "ユーティリティスキルが「Strides of Heresy」に置換";
}
if (itemDef.itemIndex == Items.LunarSpecialReplacement.itemIndex)
{
return "スペシャルスキルが「Essence of Heresy」に置換";
}
if (stackCount > 1)
{
return $"現在のスタック数: {stackCount}";
}
return "";
}
public void OnDestroy()
{
//IL_0008: Unknown result type (might be due to invalid IL or missing references)
//IL_0012: Expected O, but got Unknown
//IL_001a: Unknown result type (might be due to invalid IL or missing references)
//IL_0024: Expected O, but got Unknown
//IL_002c: Unknown result type (might be due to invalid IL or missing references)
//IL_0036: Expected O, but got Unknown
Inventory.GiveItem_ItemIndex_int -= new hook_GiveItem_ItemIndex_int(Inventory_GiveItem);
Inventory.SetEquipmentIndex -= new hook_SetEquipmentIndex(Inventory_SetEquipmentIndex);
Chat.AddPickupMessage -= new hook_AddPickupMessage(Chat_AddPickupMessage);
}
}