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.
113 lines
3.7 KiB
C#
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);
|
|
}
|
|
}
|