Files
SVSimServer/SVSim.BattleEngine/Engine/AreaSelectMapIcon.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

139 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class AreaSelectMapIcon
{
public const int MAPICONLIST_CAPACITY_DEFAULT = 8;
private readonly string MAP_ICON_EFFECT_NAME_CIRCLE4 = "ef_circle4_add_nor_1";
private readonly string MAP_ICON_EFFECT_NAME_TWINKLE1 = "ef_twinkle1_add_nor_1";
private readonly Color32 MAP_ICON_EFFECT_COLOR_CLEARED = new Color32(byte.MaxValue, 192, 64, byte.MaxValue);
private readonly Color32 MAP_ICON_EFFECT_COLOR_ALREADY_READ_CIRCLE4 = new Color32(78, 95, 125, byte.MaxValue);
private readonly Color32 MAP_ICON_EFFECT_COLOR_ALREADY_READ_TWINKLE1 = new Color32(190, 218, 242, byte.MaxValue);
[SerializeField]
private GameObject MapIconRoot;
[SerializeField]
private UISprite MapIconOriginal;
private List<UISprite> MapIconList;
private GameObject MapIconEffect;
public void Init()
{
}
public void Term()
{
MapIconEffect = null;
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_MAP_MAPICON_CLEARED);
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_MAP_MAPICON_NOTCLEARED);
}
public void SetupMapIcon(List<StoryChapterData> chapterDataList)
{
if (MapIconList != null)
{
int i = 0;
for (int count = MapIconList.Count; i < count; i++)
{
UnityEngine.Object.Destroy(MapIconList[i].gameObject);
}
}
MapIconList = new List<UISprite>(8);
UISprite uISprite = null;
for (int j = 0; j < chapterDataList.Count; j++)
{
if (chapterDataList[j].IsReleased)
{
uISprite = UnityEngine.Object.Instantiate(MapIconOriginal);
if (!(null == uISprite))
{
uISprite.transform.parent = MapIconRoot.transform;
uISprite.transform.localPosition = new Vector3(chapterDataList[j].MapIconPos.x, chapterDataList[j].MapIconPos.y);
uISprite.transform.localScale = Vector3.one;
uISprite.name = "mapicon_" + j;
uISprite.gameObject.SetActive(chapterDataList[j].IsDisplayMapIcon);
MapIconList.Add(uISprite);
}
}
}
MapIconOriginal.gameObject.SetActive(value: false);
}
public Vector3 GetMapIconPos(int chapterIndex, bool isLocal)
{
if (MapIconList == null)
{
return Vector3.zero;
}
if (chapterIndex < 0 || chapterIndex >= MapIconList.Count)
{
return Vector3.zero;
}
if (!isLocal)
{
return MapIconList[chapterIndex].transform.position;
}
return MapIconList[chapterIndex].transform.localPosition;
}
public void SetActiveMapIcon(int chapterIndex, bool isActive)
{
if (chapterIndex >= 0 && chapterIndex < MapIconList.Count)
{
MapIconList[chapterIndex].gameObject.SetActive(isActive);
}
}
public void StartMapIconEffect(StoryChapterData.ChapterClearStatus clearState, int chapterIndex)
{
Effect effect = null;
switch (clearState)
{
case StoryChapterData.ChapterClearStatus.Cleared:
effect = GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_MAP_MAPICON_CLEARED);
effect.ChangeParticleColor(MAP_ICON_EFFECT_COLOR_CLEARED);
break;
case StoryChapterData.ChapterClearStatus.AlreadyRead:
effect = GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_MAP_MAPICON_CLEARED);
MotionUtils.ChangeParticleSystemColor(effect.transform.Find(MAP_ICON_EFFECT_NAME_CIRCLE4).gameObject, MAP_ICON_EFFECT_COLOR_ALREADY_READ_CIRCLE4);
MotionUtils.ChangeParticleSystemColor(effect.transform.Find(MAP_ICON_EFFECT_NAME_TWINKLE1).gameObject, MAP_ICON_EFFECT_COLOR_ALREADY_READ_TWINKLE1);
break;
default:
effect = GameMgr.GetIns().GetEffectMgr().Start(EffectMgr.EffectType.CMN_MAP_MAPICON_NOTCLEARED);
break;
}
MapIconEffect = effect.GetGameObjIns();
UpdateMapIconEffectPos(chapterIndex);
}
public void StopMapIconEffect()
{
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_MAP_MAPICON_CLEARED);
GameMgr.GetIns().GetEffectMgr().Stop(EffectMgr.EffectType.CMN_MAP_MAPICON_NOTCLEARED);
}
public void UpdateMapIconEffectPos(int chapterIndex)
{
if (MapIconList != null && chapterIndex >= 0 && chapterIndex < MapIconList.Count && !(null == MapIconEffect))
{
Vector3 position = MapIconList[chapterIndex].transform.position;
MapIconEffect.transform.position = position;
}
}
public GameObject GetMapIconObject(int chapterIndex)
{
return MapIconList[chapterIndex].gameObject;
}
}