238 lines
7.8 KiB
C#
Raw Permalink Normal View History

2025-05-18 01:04:31 +08:00
// ***********************************************************************
// Assembly : Unity
// Author : Kimch
// Created : 2019-05-20
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "ItemProxy.Static" company="Kunpo"></copyright>
// <summary></summary>
// ***********************************************************************
namespace G
{
using F.Item;
using System.Collections.Generic;
partial class ItemProxy
{
private ItemGroupHelper _itemGroupHelper = new ItemGroupHelper();
private Dictionary<System.Type, string> _typeNameDict = new Dictionary<System.Type, string>();
/// <summary>
///
/// </summary>
private void InitStatic()
{
KFramework.ItemManager.SetItemGroupHelper(_itemGroupHelper);
///添加供全局表
this.AddStaticGroup<ItemParam>(false);
this.AddStaticGroup<ItemTime>(false);
//图标
this.AddStaticGroup<ItemIcon>(false);
///添加供全局查找道具
this.AddStaticGroup<ItemProp>(false);
this.AddStaticGroup<ItemEquipment>(false);
this.AddStaticGroup<ItemGem>(false);
this.AddStaticGroup<ItemWeapon>(false);
this.AddStaticGroup<ItemSuit>(false);
//属性表
this.AddStaticGroup<ItemAttribute>(false);
this.AddStaticGroup<ItemAttributeFactor>(false);
//武学文学
this.AddStaticGroup<ItemKungfu>(false);
this.AddStaticGroup<ItemKungfuGroup>(false);
this.AddStaticGroup<ItemBook>(false);
this.AddStaticGroup<ItemBookGroup>(false);
///添加 怪物表
this.AddStaticGroup<ItemMinion>(false);
this.AddStaticGroup<ItemElite>(false);
this.AddStaticGroup<ItemBoss>(false);
//关卡相关
this.AddStaticGroup<ItemChapter>(false);
this.AddStaticGroup<ItemLevel>(false);
this.AddStaticGroup<ItemStage>(false);
//奇遇冒险
this.AddStaticGroup<ItemAdventure>(false);
//
this.AddStaticGroup<ItemMoves>(false);
this.AddStaticGroup<ItemMovesPackage>(false);
//
this.AddStaticGroup<ItemSkill>(false);
this.AddStaticGroup<ItemBuff>(false);
//宝箱
this.AddStaticGroup<ItemBox>(false);
//事务
this.AddStaticGroup<ItemBusiness>(false);
this.AddStaticGroup<ItemBeauty>(false);
this.AddStaticGroup<ItemBeautySkill>(false);
this.AddStaticGroup<ItemBeautySkin>(false);
//称号
this.AddStaticGroup<ItemSwordTitle>(false);
this.AddStaticGroup<ItemSword>(false);
this.AddStaticGroup<ItemSwordLevel>(false);
this.AddStaticGroup<ItemSwordGrade>(false);
//功能表
this.AddStaticGroup<ItemFunction>(false);
//角色表
this.AddStaticGroup<ItemCha>(false);
this.AddStaticGroup<ItemChaLevel>(false);
this.AddStaticGroup<ItemChaSkin>(false);
this.AddStaticGroup<ItemChaAvatar>(false);
//Npc
this.AddStaticGroup<ItemNpc>(false);
//宠物
this.AddStaticGroup<ItemPet>(false);
this.AddStaticGroup<ItemPetLevel>(false);
this.AddStaticGroup<ItemPetSkill>(false);
this.AddStaticGroup<ItemPetConst>(false);
//任务表
this.AddStaticGroup<ItemMission>(false);
//剧情相关
this.AddStaticGroup<ItemStoryGroup>(false);
this.AddStaticGroup<ItemStoryStage>(false);
this.AddStaticGroup<ItemStoryAction>(false);
//新手引导
this.AddStaticGroup<ItemTutorialGroup>(false);
this.AddStaticGroup<ItemTutorialStage>(false);
this.AddStaticGroup<ItemTutorialAction>(false);
this.AddStaticGroup<ItemTutorialCondition>(false);
//活动表
this.AddStaticGroup<ItemActivity>(false);
this.AddStaticGroup<ItemActivitySub>(false);
this.AddStaticGroup<ItemSevenSign>(false);
this.AddStaticGroup<ItemActivityParent>(false);
this.AddStaticGroup<ItemWheel>(false);
this.AddStaticGroup<ItemBattlePass>(false);
this.AddStaticGroup<ItemBattlePassLevel>(false);
//
this.AddStaticGroup<ItemVip>(false);
this.AddStaticGroup<ItemMail>(false);
// city
this.AddStaticGroup<ItemCity>(false);
this.AddStaticGroup<ItemCityEvent>(false);
//帮会
//this.AddStaticGroup<ItemGuild>(false);
//this.AddStaticGroup<ItemGuildActivity>(false);
//this.AddStaticGroup<ItemGuildBuilding>(false);
//this.AddStaticGroup<ItemGuildShop>(false);
//
this.AddStaticGroup<ItemRandom>(false);
this.AddStaticGroup<ItemAccess>(false);
//商城表
this.AddStaticGroup<ItemShopBox>(false);
this.AddStaticGroup<ItemShopCharge>(false);
this.AddStaticGroup<ItemShopCard>(false);
this.AddStaticGroup<ItemShopSpecial>(false);
this.AddStaticGroup<ItemShopGift>(false);
//转化表
this.AddStaticGroup<ItemConvert>(false);
}
#region Method
private string GetTypeName<T>()
{
var t = typeof(T);
if (_typeNameDict.TryGetValue(t, out var result))
{
return result;
}
result = t.Name;
_typeNameDict.Add(t, result);
return result;
}
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="global"></param>
private void AddStaticGroup<T>(bool global) where T : class, IItem
{
var fullName = GetTypeName<T>();
_itemGroupHelper.AddClass<T>(fullName);
KFramework.ItemManager.AddStaticGroup<T>(fullName, global);
}
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public IItemGroup<T> GetGroup<T>() where T : class, IItem
{
var fullName = GetTypeName<T>();
return KFramework.ItemManager.GetGroup<T>(fullName);
}
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public IReadOnlyList<T> GetStaticItems<T>() where T : class, IItem
{
var fullName = GetTypeName<T>();
return KFramework.ItemManager.GetStaticItems<T>(fullName);
}
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="id"></param>
/// <returns></returns>
public T GetStaticItem<T>(int id) where T : class, IItem
{
if (id > 0)
{
var fullName = GetTypeName<T>();
var group = KFramework.ItemManager.GetGroup<T>(fullName);
if (group != null)
return group.GetItem(id);
}
return default;
}
/// <summary>
/// 获取全局Item
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public IItem GetGlobalItem(int id)
{
if (id > 0)
{
return KFramework.ItemManager.GetStaticItem(id);
}
return default;
}
#endregion
}
}