SRMP-Public/SRMP/Networking/NetworkTreasurePod.cs
2023-05-29 22:23:11 +02:00

74 lines
2.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace SRMultiplayer.Networking
{
public class NetworkTreasurePod : MonoBehaviour
{
public TreasurePod Pod;
public NetworkRegion Region;
public void Activate()
{
Pod.CurrState = TreasurePod.State.OPEN;
if (gameObject.activeInHierarchy)
{
if (Pod.openCue != null)
{
SECTR_AudioSystem.Play(Pod.openCue, Pod.transform.position, false);
}
if (Pod.openFX != null)
{
SRBehaviour.InstantiateDynamic(Pod.openFX, Pod.transform.position, Pod.transform.rotation, false);
}
StartCoroutine(AwardPrizesDefault());
}
else
{
if (Pod.unlockedSlimeAppearance != null)
{
Pod.slimeAppearanceDirector.UnlockAppearance(Pod.unlockedSlimeAppearanceDefinition, Pod.unlockedSlimeAppearance);
}
if (Pod.blueprint != Gadget.Id.NONE)
{
SRSingleton<SceneContext>.Instance.PopupDirector.QueueForPopup(new TreasurePod.BlueprintPopupCreator(Pod.blueprint));
SRSingleton<SceneContext>.Instance.PopupDirector.MaybePopupNext();
}
if (Pod.unlockedSlimeAppearance != null)
{
Pod.slimeAppearanceDirector.UpdateChosenSlimeAppearance(Pod.unlockedSlimeAppearanceDefinition, Pod.unlockedSlimeAppearance);
Pod.unlockedSlimeAppearance.MaybeShowPopupUI();
}
}
}
private IEnumerator AwardPrizesDefault()
{
if (Pod.unlockedSlimeAppearance != null)
{
Pod.slimeAppearanceDirector.UnlockAppearance(Pod.unlockedSlimeAppearanceDefinition, Pod.unlockedSlimeAppearance);
}
yield return new WaitForSeconds(TreasurePod.OPEN_DELAY);
if (Pod.afterOpenFX != null)
{
SRBehaviour.InstantiateDynamic(Pod.afterOpenFX, base.transform.position, base.transform.rotation, false);
}
if (Pod.blueprint != Gadget.Id.NONE)
{
SRSingleton<SceneContext>.Instance.PopupDirector.QueueForPopup(new TreasurePod.BlueprintPopupCreator(Pod.blueprint));
SRSingleton<SceneContext>.Instance.PopupDirector.MaybePopupNext();
yield return new WaitForSeconds(TreasurePod.ITEM_GAP_DELAY);
}
if (Pod.unlockedSlimeAppearance != null)
{
Pod.slimeAppearanceDirector.UpdateChosenSlimeAppearance(Pod.unlockedSlimeAppearanceDefinition, Pod.unlockedSlimeAppearance);
Pod.unlockedSlimeAppearance.MaybeShowPopupUI();
}
}
}
}