NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Kamihime Project R - Change status icon sort order // @description Changes default status icon sort order. New statuses are added at correct positions. // @updateURL https://openuserjs.org/meta/nike/Kamihime_Project_R_-_Change_status_icon_sort_order.meta.js // @license MIT // @match https://gnkh-api-r.prod.nkh.dmmgames.com/front/cocos2d-proj/components-pc/game/app.html // @run-at document-start // ==/UserScript== (function() { var intervalFixStatusSort = setInterval(function() { if (typeof kh !== 'undefined' && kh.StatusEffectIconHandler && kh.StatusEffect) { clearInterval(intervalFixStatusSort); if(!kh.iconOrderChanged) { kh.StatusEffectIconHandler.prototype.__getIconSortNumber = function(t) { return t._id } } kh.StatusEffectIconHandler.prototype.pushStatusEffect = function(t) { if (null == t) { var i = "WARNING: KHStatusEffectIconHandler.pushStatusEffect: status effect not found on the battle world"; return s.warn(i), kh.createInstance("logger").reportBattleStatusEffects(cc.director.getRunningScene().__instanceId, { status_effect_list: _.invoke(kh.createInstance("battleWorld").statusEffectList, "getId") }), void kh.createInstance("logger").reportJsException(i) } if (null != t.getType()) { this.removeStatusEffect(t); var newList = [] this._statusEffectList.forEach((x) => newList.push(x)) newList.push(t) var sortedList = newList.sort((a, b) => { var aGroup = this.__getIconGroupNumber(a) var bGroup = this.__getIconGroupNumber(b) var result if (aGroup != bGroup) { result = aGroup - bGroup } else { result = 0 } return result }) sortedList = sortedList.sort((a, b) => { var aGroup = this.__getIconGroupNumber(a) var bGroup = this.__getIconGroupNumber(b) var result if (aGroup == bGroup) { result = this.__getIconSortNumber(a) - this.__getIconSortNumber(b) } else { result = 0 } return result }) this._statusEffectList.splice(0, this._statusEffectList.length) sortedList.forEach((x) => this._statusEffectList.push(x)) } } kh.newEnemyStatusIconGroups = new Map([ [1118, 12], [1119, 12], [546, 12], [608, 12], [561, 12], [572, 12], ]); kh.StatusEffect.prototype.getEnemyIconGroupNumber = function() { let changedEnemyStatusGroup = kh.newEnemyStatusIconGroups.get(this._id) let group if (changedEnemyStatusGroup) { group = changedEnemyStatusGroup } else { group = this._enemySortGroupNumber } return group }; kh.changedIconOrder = [ /* AFFLICTION BLOCK */ 47, 362, /* SPECIAL TOKENS */ /* OFFENSIVE */ // Damage dealt up (Byakko) 377, // Rampage 78, // Follow Up 187, // Spread 237, // GDA 27, // GTA 28, // DA 23, 196, 168, 40005, // TA 24, 169, 1461, 40006, // atk up 6, 5, 7, 9, 40001, // special atk up 276, 254, 40033, // vigor 176, // fire atk up 101, 40009, // water atk up 102, 40010, // wind atk up 103, 40011, // thunder atk up 104, 40012, // light atk up 105, 40013, // dark atk up 106, 40014, // abi dmg 19, 20, 96, 1314, // max abi dmg 188, 194, 327, 1313, 1051, 40038, // burst dmg 137, 88, 157, 183, // max burst dmg 152, 162, 521, 40036, // natk dmg 238, 388, // max natk dmg 185, 198, 40037, // stinger 139, 170, 40034, /* DEFENSIVE */ // def up 14, 15, 13, 74, 1213, 164, 40003, // dmg cut 1019, 37, 38, // fire rst up 113, 40015, // water rst up 114, 40016, // wind rst up 115, 40017, // thunder rst up 116, 40018, // light rst up 117, 40019, // dark rst up 118, 40020, // phantom rst up 505, 40039, /* AFFLICTION DEBUFFS */ 22, 214, /* ATK DEBUFF */ // DA down 25, 40007, // TA down 26, 40008, // atk down 10, 12, 11, 1118, // perseus 40002, // fire atk down 107, 546, 40021, // water atk down 108, 40022, // wind atk down 109, 40023, // thunder atk down 110, 561, 40024, // light atk down 111, 40025, // dark atk down 112, 40026, // phantom atk down 476, /* DEF DEBUFF */ // def down 16, 18, 17, 158, 1119, // perseus 40004, // fire rst down 119, // water rst down 120, 608, // wind rst down 121, 572, // thunder rst down 122, // light rst down 123, // dark rst down 124, // phantom rst down 477, /* UTILITY + REST */ // affliction rate up 242, 419 ] kh.StatusEffectIconHandler.prototype.__getIconSortNumber = function(t) { let changedOrder = kh.changedIconOrder.indexOf(t._id) if (changedOrder != -1) { return changedOrder } else { return t._id + 10000000 } } kh.iconOrderChanged = true } }, 10); })();