Files
SVSimServer/SVSim.BattleEngine/Engine/Wizard/SealedClassSelectObject.cs
gamer147 824309ec44 feat(battle-engine): close the AI-simulation subsystem (verbatim)
Copied the 89 uncopied AI*SimulationUtility/extension files defining the
AIVirtualCard/AIVirtualField extension methods; the compile loop then auto-closed
the revealed type deps (~3049 files total, drift-clean). 10.0k -> 62 errors.
2026-06-05 20:30:59 -04:00

113 lines
3.7 KiB
C#

using System.Collections;
using Cute;
using UnityEngine;
namespace Wizard;
public class SealedClassSelectObject : MonoBehaviour
{
[SerializeField]
private ClassInfoParts _classInfoParts;
[SerializeField]
private UITexture _charaTexture;
[SerializeField]
private UIGrid _cardObjectsGrid;
[SerializeField]
private UIButton _selectButton;
[SerializeField]
private UITexture _effectMask;
private const ResourcesManager.AssetLoadPathType CHARA_TEX_LOAD_TYPE = ResourcesManager.AssetLoadPathType.ClassCharaBase;
private const int EFFECT_SORTING_ORDER = 2;
private readonly eColorCodeId[] EFFECT_COLORCODEID_TABLE = new eColorCodeId[9]
{
eColorCodeId.MAX,
eColorCodeId.SEALED_CLASS_ELF_EFFECT_COLOR,
eColorCodeId.SEALED_CLASS_ROYAL_EFFECT_COLOR,
eColorCodeId.SEALED_CLASS_WITCH_EFFECT_COLOR,
eColorCodeId.SEALED_CLASS_DRAGON_EFFECT_COLOR,
eColorCodeId.SEALED_CLASS_NECRO_EFFECT_COLOR,
eColorCodeId.SEALED_CLASS_VAMPIRE_EFFECT_COLOR,
eColorCodeId.SEALED_CLASS_BISHOP_EFFECT_COLOR,
eColorCodeId.SEALED_CLASS_NEMESIS_EFFECT_COLOR
};
private GameObject _effect;
public SealedClassSelectLoadRequest Init(SealedClassSelectObjectInitParam initParam)
{
_classInfoParts.InitByCharaPrm(initParam.CharaParam);
foreach (CardListTemplate cardObject in initParam.CardObjectList)
{
cardObject.SetParentAndResetPos(_cardObjectsGrid.transform);
}
_cardObjectsGrid.Reposition();
UIEventListener.Get(_selectButton.gameObject).onClick = delegate
{
initParam.SelectButtonClickCallback();
};
int class_id = initParam.CharaParam.class_id;
CreateEffect(initParam, class_id);
InitEffectMask(class_id);
return CreateLoadRequest(initParam);
}
private SealedClassSelectLoadRequest CreateLoadRequest(SealedClassSelectObjectInitParam initParam)
{
SealedClassSelectLoadRequest sealedClassSelectLoadRequest = new SealedClassSelectLoadRequest();
ResourcesManager resMgr = Toolbox.ResourcesManager;
string strSkinId = initParam.CharaParam.skin_id.ToString();
sealedClassSelectLoadRequest.LoadAssetList.Add(resMgr.GetAssetTypePath(strSkinId, ResourcesManager.AssetLoadPathType.ClassCharaBase));
sealedClassSelectLoadRequest.LoadEndCallback = delegate
{
_charaTexture.mainTexture = resMgr.LoadObject<Texture>(resMgr.GetAssetTypePath(strSkinId, ResourcesManager.AssetLoadPathType.ClassCharaBase, isfetch: true));
_effect.transform.position = base.transform.position;
};
return sealedClassSelectLoadRequest;
}
private void CreateEffect(SealedClassSelectObjectInitParam initParam, int stencil)
{
StartCoroutine(CreateEffectCoroutine(initParam, stencil));
}
private IEnumerator CreateEffectCoroutine(SealedClassSelectObjectInitParam initParam, int stencil)
{
bool isEndMaterialSet = false;
_effect = EffectUtility.CreateEffect2D(new Effect2dCreateParam
{
Parent = initParam.EffectRoot,
EffectName = "cmn_sealed_class_1",
ColorCode = EFFECT_COLORCODEID_TABLE[initParam.CharaParam.class_id],
InitActive = true,
MaterialSetEndCallback = delegate
{
isEndMaterialSet = true;
},
UnloadAssetList = initParam.UnloadAssetList
});
while (!isEndMaterialSet)
{
yield return null;
}
ParticleSystemRenderer[] componentsInChildren = _effect.GetComponentsInChildren<ParticleSystemRenderer>();
foreach (ParticleSystemRenderer obj in componentsInChildren)
{
obj.sortingOrder = 2;
obj.material = new Material(obj.material);
}
GameMgr.GetIns().GetEffectMgr().ChangeMaskShader(_effect.gameObject, stencil);
}
private void InitEffectMask(int stencil)
{
_effectMask.material = MaterialDefine.CreateNguiStencilMaskMaterial(stencil);
}
}