// *********************************************************************** // Assembly : Unity // Author : Kimch // Created : 2019-08-06 // Description : // Last Modified By : // Last Modified On : // *********************************************************************** // // // *********************************************************************** #if (UNITY_EDITOR || DEBUG_MY) && !UNITY_WEBGL using System.ComponentModel; using UnityEngine; namespace G { partial class KGMOptions { [Category("工具"), Sort(0), NumberRange(0, 99999)] public int 道具 { get; set; } = 0; [Category("工具"), Sort(0), NumberRange(0, 100000)] public int 道具数量 { get; set; } = 1; [Category("工具"), Sort(1)] public void 增加道具() { if (道具 > 0) { var item = ItemProxy.Instance.GetStaticItem(道具); if (item != null) { if (item.isWeaponOrEquipment) ItemProxy.Instance.NewEquipment(item.id); else if (item.isGem) ItemProxy.Instance.SetGemCount(item.id, 道具数量); else if (item.isMoney) MoneyProxy.Instance.AddMoney(item.id, 道具数量 - MoneyProxy.Instance.GetMoney(item.id)); else ItemProxy.Instance.SetPropCount(item.id, 道具数量); } } else { var equipmentItems = ItemProxy.Instance.GetStaticItems(); for (int i = 0; i < 10; i++) { var eq = equipmentItems[Random.Range(0, equipmentItems.Count)]; ItemProxy.Instance.NewEquipment(eq.id); } } GlobalNotifier.PostNotification(GlobalDefine.EVENT_EQUIPMENT_GET); } [Category("工具"), Sort(2)] public void 体力() { PlayerProxy.Instance.energy = 100; } //[Category("工具"), Sort(3)] //public void 等级() //{ // PlayerProxy.Instance.grade += 1; // GlobalNotifier.PostNotification(GlobalDefine.EVENT_GRADE_CHANGED); //} //[Category("工具"), Sort(3)] //public void 经验() //{ // PlayerProxy.Instance.exp += 10000; // GlobalNotifier.PostNotification(GlobalDefine.EVENT_GRADE_CHANGED); //} [Category("工具"), Sort(4)] public void 金币() { MoneyProxy.Instance.AddCoin(100000); GlobalNotifier.PostNotification(GlobalDefine.EVENT_MONEY_CHANGED); } [Category("工具"), Sort(5)] public void 晶石() { MoneyProxy.Instance.AddChip(100000); GlobalNotifier.PostNotification(GlobalDefine.EVENT_MONEY_CHANGED); } [Category("工具"), Sort(6)] public void 陨铁() { MoneyProxy.Instance.AddStone(100000); GlobalNotifier.PostNotification(GlobalDefine.EVENT_MONEY_CHANGED); } [Category("工具"), Sort(6)] public void 福袋() { MoneyProxy.Instance.AddMoney(Item.Id.kLuckyBag, 100); GlobalNotifier.PostNotification(GlobalDefine.EVENT_MONEY_CHANGED); } [Category("工具"), Sort(6)] public void 宝石() { var gems = ItemProxy.Instance.GetStaticItems(); foreach (var gem in gems) { ItemProxy.Instance.AddGem(gem.id, 1); } GlobalNotifier.PostNotification(GlobalDefine.EVENT_EQUIPMENT_GET); } [Category("工具"), Sort(7)] public void 阅历() { VipProxy.Instance.curVip += 1; VipProxy.Instance.SaveVip(); var vipW = KUIWindow.GetWindow(); if (vipW != null) vipW.RefreshView(); } [Category("工具"), Sort(5)] public void 元宝() { MoneyProxy.Instance.AddGem(100000); GlobalNotifier.PostNotification(GlobalDefine.EVENT_MONEY_CHANGED); } [Category("工具"), Sort(9)] public void 本地邮件() { var mails = ItemProxy.Instance.GetStaticItems(); MailProxy.Instance.PostLocalMail(mails[0].id); } #region 剧情 private int _storyEnabled = -1; [Category("剧情"), Sort(0)] public bool 开关 { get { if (_storyEnabled == -1) { _storyEnabled = PlayerPrefs.GetInt("story_switch", 1); if (_storyEnabled == 0) G.StoryProxy.Instance.storyEnabled = false; } return _storyEnabled != 0; } set { int v = value ? 1 : 0; if (_storyEnabled != v) { _storyEnabled = v; StoryProxy.Instance.storyEnabled = value; PlayerPrefs.SetInt("story_switch", _storyEnabled); PlayerPrefs.Save(); } } } [Category("剧情"), Sort(1), NumberRange(1, 99999)] public int 剧情 { get; set; } = 1; [Category("剧情"), Sort(2)] public void 开始剧情() { SRDebug.Instance.HideDebugPanel(); if (剧情 > 0) StoryProxy.Instance.TriggerStory(剧情, null); } [Category("剧情"), Sort(3)] public int 奇遇ID { get; set; } [Category("剧情"), Sort(4)] public void 触发奇遇() { var adve = ItemProxy.Instance.GetStaticItem(奇遇ID); UI.AdventureBox.ShowAdventure(adve, false, () => { Debug.Log($"完成奇遇 {奇遇ID}"); }); } #endregion #region 学习 [Category("武学"), Sort(1)] public void 学习武学() { } [Category("武学"), Sort(2), NumberRange(101, 100000)] public int 书本Id { get; set; } = 101; [Category("武学"), Sort(3)] public void 解锁书本() { BookProxy.Instance.UnlockBook(ItemProxy.Instance.GetStaticItem(书本Id)); } #endregion #region 关卡 [Category("关卡"), Sort(1), NumberRange(1, 99999)] public int 关卡 { get; set; } = 1; [Category("关卡"), Sort(2)] public void 完成当前() { var levelItem = ItemProxy.Instance.GetStaticItem(关卡); if (levelItem != null && !levelItem.isCompleted) { LevelProxy.Instance.CompleteLevel(levelItem.id, levelItem.maxStage); GlobalNotifier.PostNotification(GlobalDefine.EVENT_LEVEL_INFO_CHANGED); var mainWindow = KUIWindow.GetWindow(); if (mainWindow != null) { mainWindow.RefreshModel(); mainWindow.RefreshView(); } } 关卡 += 1; } [Category("关卡"), Sort(3)] public void 一键完成() { for (int i = 1; i <= 关卡; i++) { var levelItem = ItemProxy.Instance.GetStaticItem(关卡); if (levelItem != null && !levelItem.isCompleted) { LevelProxy.Instance.CompleteLevel(levelItem.id, levelItem.maxStage); } } GlobalNotifier.PostNotification(GlobalDefine.EVENT_LEVEL_INFO_CHANGED); var mainWindow = KUIWindow.GetWindow(); if (mainWindow != null) { mainWindow.RefreshModel(); mainWindow.RefreshView(); } } [Category("关卡"), Sort(4)] public void 完成无尽() { LevelProxy.Instance.CompleteEndlessLevel(关卡); } [Category("关卡"), Sort(4)] public void 剑阁关() { LevelProxy.Instance.CompleteClimbLevel(关卡); } #endregion #region 任务 [Category("任务"), Sort(1)] public int 任务Id { get; set; } [Category("任务"), Sort(2)] public void 完成任务() { if (任务Id > 0) { var mission = MissionProxy.Instance.GetMission(任务Id); if (mission != null) mission.curValue = mission.maxValue; } } [Category("任务"), Sort(3)] public bool 任务跳过完成 { get; set; } [Category("任务"), Sort(4)] public void 一键主线() { while (MissionProxy.Instance.mainMission != null) { MissionProxy.Instance.mainMission.isRewarded = true; } } [Category("任务"), Sort(5)] public void 打印() { if (任务Id > 0) { var mission = MissionProxy.Instance.GetMission(任务Id); if (mission != null) Debug.Log($"任务 id={mission.id} cur={mission.curValue} max={mission.maxValue} rewarded={mission.isRewarded}"); } } #endregion #region 红颜 public enum BeautyId { 绾绾 = 1, 雪玲珑 = 2, 梦瑶 = 3, 高语嫣 = 4, 慕容千凌 = 5, 秦暮白 = 6, 尤欢欢 = 7, 小昭 = 8, 塔娜 = 9, 未知 = 10, } [Category("红颜&宠物"), Sort(0)] public BeautyId 红颜Id { get; set; } [Category("红颜&宠物"), Sort(1)] public void 增加红颜好感() { var beautyInfo = BeautyProxy.Instance.GetBeauty((int)红颜Id); if (beautyInfo != null) { if (beautyInfo.isUnlock) BeautyProxy.Instance.AddFriend(beautyInfo, 1); } } [Category("红颜&宠物"), NumberRange(12000, 12999), Sort(2)] public int 宠物Id { get; set; } [Category("红颜&宠物"), Sort(3)] public void 增加宠物好感() { var petInfo = PetProxy.Instance.GetPet(宠物Id); if (petInfo != null) { //if (petInfo.isUnlock) petInfo.AddFriend(1); } } [Category("红颜&宠物"), Sort(4)] public void 宠物升一级() { var petInfo = PetProxy.Instance.GetPet(宠物Id); if (petInfo != null) { if (petInfo.isFriend) petInfo.AddGrade(1); } } [Category("红颜&宠物"), Sort(5)] public void 宠物升十级() { var petInfo = PetProxy.Instance.GetPet(宠物Id); if (petInfo != null) { if (petInfo.isFriend) petInfo.AddGrade(10); } } #endregion #region 录制视频 [Category("录制视频"), Sort(1)] public void 显示界面() { if (KUIRoot.Instance) KUIRoot.Instance.gameObject.SetActive(true); } [Category("录制视频"), Sort(2)] public void 隐藏界面() { if (KUIRoot.Instance) { UnityEngine.EventSystems.EventSystem.current.transform.parent = null; KUIRoot.Instance.gameObject.SetActive(false); } } public static bool BlockAd = false; [Category("录制视频"), Sort(3)] public void 屏蔽广告() { BlockAd = !BlockAd; } public static string AB_Version; [Category("录制视频"), Sort(4)] public void 版本1() { AB_Version = "1"; } [Category("录制视频"), Sort(5)] public void 版本2() { AB_Version = "2"; } [Category("录制视频"), Sort(6)] public void 战斗编辑() { BattleEditor.Show(); } #endregion #region 挂机 [Category("挂机"), Sort(1)] public bool 自动挂机 { get; set; } [Category("挂机"), Sort(2)] public bool 自动体力 { get; set; } [Category("挂机"), Sort(3)] public bool 自动武学 { get; set; } [Category("挂机"), Sort(4)] public bool 自动三倍 { get; set; } [Category("挂机"), Sort(5)] public bool 自动复活 { get; set; } = true; #endregion [Category("技能"), Sort(1)] public bool 技能开关 { get; set; } = false; [Category("技能"), Sort(1), NumberRange(1, 200)] public int 技能ID { get; set; } = 1; [Category("技能"), Sort(2)] public void 学习技能() { if (MovesShop.Instance) MovesShop.Instance.StudyMoves(技能ID, true); } [Category("查错"), Sort(1)] public void 剧情查错() { var groupItems = ItemProxy.Instance.GetStaticItems(); foreach (var groupItem in groupItems) { try { var group = new StoryGroup(groupItem); } catch (System.Exception ex) { Debug.Log(groupItem.id + " " + ex.Message); } } } [Category("查错"), Sort(2)] public void 装备查错() { var props = ItemProxy.Instance.GetStaticItems(); var equipments = ItemProxy.Instance.GetStaticItems(); foreach (var item in props) { if (item.isWeaponOrEquipment) { var equipment = ItemProxy.Instance.GetStaticItem(item.id); if (equipment == null) { Debug.Log($"装备表缺少{item.id}"); } } } foreach (var item in equipments) { var prop = ItemProxy.Instance.GetStaticItem(item.id); if (prop == null) { Debug.Log($"道具表缺少{item.id}"); } } foreach (var item in equipments) { if (item.type == 0) AssetProxy.Instance.InstantiateAsync(item.assets); } } [Category("概率"), Sort(1), NumberRange(1, 200)] public int 概率Id { get; set; } [Category("概率"), Sort(2)] public void 随机一万次() { int count = 0; for (int i = 0; i < 10000; i++) { if (RandomProxy.Instance.GetRandomNotSave(概率Id)) { count++; } } Debug.Log(StringLoggingExtensions.Colored($"随机结果{count}/{10000} = {count * 0.01f}%", Color.green)); } [Category("概率"), Sort(3), NumberRange(1, 9999999)] public int 宝箱Id { get; set; } [Category("概率"), Sort(3), NumberRange(0, 9999999)] public int 额外权重 { get; set; } [Category("概率"), Sort(4)] public void 随机宝箱() { var boxInfo = BoxProxy.Instance.GetBoxInfo(宝箱Id); if (boxInfo != null) { System.Collections.Generic.Dictionary _itemDict = new System.Collections.Generic.Dictionary(); for (int i = 0; i < 10000; i++) { var item = boxInfo.GetRndItem(额外权重); if (_itemDict.TryGetValue(item.id, out var itemInfo)) { itemInfo.x += 1; itemInfo.y += item.count; _itemDict[item.id] = itemInfo; } else { _itemDict.Add(item.id, new Vector2Int(1, item.count)); } } string result = "随机宝箱:\n"; foreach (var item in _itemDict) { string name = "物品配置错误"; var prop = ItemProxy.Instance.GetStaticItem(item.Key); if (prop != null) name = prop.name; result += $"id:{item.Key} 名字:{name} 数量:{item.Value.y} 概率:{item.Value.x * 0.01f }% \n"; } Debug.Log(result); } } [Category("打印"), Sort(4)] public void 打印属性() { PrintAttrbuites("growthAttributes", PlayerProxy.Instance.growthAttributes); PrintAttrbuites("equipmentAttributes", PlayerProxy.Instance.equipmentAttributes); PrintAttrbuites("kungfuAttributes", PlayerProxy.Instance.kungfuAttributes); PrintAttrbuites("titleAttributes", PlayerProxy.Instance.titleAttributes); PrintAttrbuites("beautyAttributes", PlayerProxy.Instance.beautyAttributes); PrintAttrbuites("petAttributes", PlayerProxy.Instance.petAttributes); } private static void PrintAttrbuites(string name, CombatAttribute[] attributes) { var text = name + ":"; foreach (var item in attributes) { text += item.ToString() + ","; } Debug.Log(text); } } /// /// 不要修改 /// partial class KGMOptions : SROptions { public static readonly KGMOptions Instance = new KGMOptions(); /// /// Initialize SRDebugger after the scene has loaded. /// [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] public static void Init() { Current = Instance; Current = Instance; } } } #endif