84 lines
4.5 KiB
C#
84 lines
4.5 KiB
C#
// WL894_Probe.cs — PD 지시 #894 시험(Play 중 · 섬)
|
|
// Kit : 시작 지급 결과(무기 · 시너지 짝 장갑 · 신발) · 인벤토리 장갑/신발 · 낀 장비 · 파츠 스킬 구성(무기 시너지 성립 · 발동 수)
|
|
// Cheat(t) : 숫자 키와 같은 함수(WLWeaponGradeCheat.Apply) → 낀 장비 · 파츠 스킬 구성
|
|
// EquipGroup : 그 그룹 아이템을 인벤토리에서 찾아 장착(시험용)
|
|
using System.Text;
|
|
using UnityEngine;
|
|
using WL.Equip;
|
|
|
|
public static class WL894_Probe
|
|
{
|
|
static string Equipped()
|
|
{
|
|
var sb = new StringBuilder();
|
|
for (int t = (int)eFREquipmentType.Weapon; t < (int)eFREquipmentType.Max; t++)
|
|
{
|
|
var e = WLInventory.EquippedInSlot((eFREquipmentType)t);
|
|
if (e == null || e.itemJson == null) continue;
|
|
sb.Append((eFREquipmentType)t).Append('=').Append(e.itemJson.Item_name).Append('(').Append(e.itemJson.GroupNo).Append(' ').Append(WLEquipGrades.Label(e.itemJson, false)).Append(") ");
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
static string Syn()
|
|
{
|
|
var L = WL.PartSkill.WLPartSkillState.Current;
|
|
string s = L != null ? L.summary : "-";
|
|
var run = WL.PartSkill.WLPartSkillRunner.Instance;
|
|
if (run != null)
|
|
foreach (var k in run.Skills)
|
|
if (k != null && k.def != null && k.def.kind == WL.PartSkill.WLPartKind.WeaponSyn)
|
|
s += " | " + k.def.key + " 성립=" + k.syn + " 발동=" + k.casts;
|
|
return s;
|
|
}
|
|
|
|
public static object Kit()
|
|
{
|
|
WLInventory.EnsureLoaded();
|
|
var sb = new StringBuilder();
|
|
sb.Append("지급 ").Append(WL.Combat.Weapon.WLStarterKit.Granted).Append(" · 짝 ").Append(WL.Combat.Weapon.WLStarterKit.PartnersGranted)
|
|
.Append(" · 짝 장착 ").Append(WL.Combat.Weapon.WLStarterKit.PartnersEquipped).Append('\n').Append(WL.Combat.Weapon.WLStarterKit.LastLog).Append('\n');
|
|
int gl = 0, sh = 0;
|
|
foreach (var it in WLInventory.SortedItems())
|
|
{
|
|
if (it == null || it.itemJson == null) continue;
|
|
if (it.itemJson.EquipmentType == eFREquipmentType.Glove) { gl++; sb.Append("장갑 ").Append(it.itemJson.Item_name).Append('(').Append(it.itemJson.GroupNo).Append(") "); }
|
|
if (it.itemJson.EquipmentType == eFREquipmentType.Shose) { sh++; sb.Append("신발 ").Append(it.itemJson.Item_name).Append('(').Append(it.itemJson.GroupNo).Append(") "); }
|
|
}
|
|
sb.Append("\n장갑 ").Append(gl).Append(" · 신발 ").Append(sh).Append("\n낀 장비: ").Append(Equipped()).Append("\n파츠: ").Append(Syn());
|
|
return sb.ToString();
|
|
}
|
|
|
|
public static object Cheat(int tier)
|
|
{
|
|
var r = WL.Combat.Weapon.WLWeaponGradeCheat.Apply(tier);
|
|
return r + "\n낀 장비: " + Equipped() + "\n파츠: " + Syn();
|
|
}
|
|
|
|
public static object State() { return "낀 장비: " + Equipped() + "\n파츠: " + Syn(); }
|
|
|
|
/// <summary>#895 — 낀 무기의 능력치 계산식(일반 = 효과 없음) · 장비 공격 합 · 무기 스킬 칸(주력 희귀 · 각성 불멸).</summary>
|
|
public static object WeaponInfo()
|
|
{
|
|
var w = WLInventory.EquippedInSlot(eFREquipmentType.Weapon);
|
|
var sb = new StringBuilder();
|
|
if (w != null && w.itemJson != null)
|
|
sb.Append(w.itemJson.Item_name).Append(' ').Append(WLEquipGrades.Label(w.itemJson, false)).Append(" · 효과 없음=").Append(WLEquipGrades.NoEffect(w.itemJson))
|
|
.Append('\n').Append(WLEquipStats.FormulaText(w)).Append('\n');
|
|
sb.Append("장비 공격 합 ").Append(WLEquipStats.LastEquipAttack.ToString("0.#")).Append('\n');
|
|
var slots = WL.Combat.Weapon.WLWeaponSkillSlots.LastSlots;
|
|
sb.Append("무기 스킬 칸 [").Append(slots != null ? string.Join(",", System.Array.ConvertAll(slots, x => x.ToString())) : "-").Append("] 등급 ").Append(WL.Combat.Weapon.WLWeaponSkillSlots.LastTier)
|
|
.Append(" | 명중 연결 ").Append(WL.Combat.Weapon.WLSkillChain.Triggered).Append('/').Append(WL.Combat.Weapon.WLSkillChain.Cast);
|
|
return sb.ToString();
|
|
}
|
|
|
|
public static object EquipGroup(int groupNo)
|
|
{
|
|
if (!WLInventory.EnsureLoaded()) return "인벤토리 로드 실패";
|
|
foreach (var it in WLInventory.SortedItems())
|
|
if (it != null && it.itemJson != null && it.itemJson.GroupNo == groupNo)
|
|
return "장착 " + groupNo + " " + it.itemJson.Item_name + " → " + WLInventory.Equip(it.rawItem._id);
|
|
return "인벤토리에 없음 " + groupNo;
|
|
}
|
|
}
|