You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
262 lines
8.3 KiB
262 lines
8.3 KiB
using UnityEngine; |
|
using Ability; |
|
using UnityEngine.SceneManagement; |
|
using TMPro; |
|
using Equip; |
|
using UnityEngine.Advertisements; |
|
|
|
#if UNITY_IOS || UNITY_ANDROID |
|
using Facebook.Unity; |
|
#endif |
|
|
|
public class EntryPoint : MonoBehaviour |
|
{ |
|
[SerializeField] SimpleProgressBar _loadingProgress; |
|
[SerializeField] TextMeshProUGUI _loadingLabel; |
|
|
|
bool m_inited = false; |
|
bool m_needLoadScene = true; |
|
|
|
float m_loadingTime = 4f; |
|
float m_currentLoadingTime = 0f; |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void Awake() |
|
{ |
|
Init(); |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void Init() |
|
{ |
|
UnbiasedTime.Instance.Now(); |
|
|
|
InitUser(); |
|
InitAds(); |
|
InitGameText(); |
|
InitAbilities(); |
|
LoadResources(); |
|
InitStoreOffersInfo(); |
|
InitPurchaser(); |
|
InitSkinsInfo(); |
|
InitEuqipedItemsSettings(); |
|
InitFacebookSDK(); |
|
|
|
if (_loadingProgress) |
|
{ |
|
_loadingProgress.Init(); |
|
_loadingProgress.SetProgress(0f); |
|
} |
|
|
|
if (_loadingLabel) |
|
_loadingLabel.text = "0%"; |
|
|
|
m_inited = true; |
|
} |
|
|
|
//------------------------------------------------------------------- |
|
void InitFacebookSDK() |
|
{ |
|
#if UNITY_IOS || UNITY_ANDROID |
|
if (!FB.IsInitialized) |
|
FB.Init(InitCallback, OnHideUnity); |
|
else |
|
FB.ActivateApp(); |
|
#endif |
|
} |
|
|
|
//------------------------------------------------------------------- |
|
private void InitCallback() |
|
{ |
|
#if UNITY_IOS || UNITY_ANDROID |
|
if (FB.IsInitialized) |
|
FB.ActivateApp(); |
|
else |
|
Debug.Log("Failed to Initialize the Facebook SDK"); |
|
#endif |
|
} |
|
|
|
//------------------------------------------------------------------- |
|
private void OnHideUnity(bool isGameShown) |
|
{ |
|
if (!isGameShown) |
|
Time.timeScale = 0; |
|
else |
|
Time.timeScale = 1; |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void InitEuqipedItemsSettings() |
|
{ |
|
EquipSettings.Init(); |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void InitSkinsInfo() |
|
{ |
|
SkinsInfo info1 = new SkinsInfo(); |
|
info1.m_type = SkinType.RACCOON; |
|
info1.m_nameTextId = 160; |
|
info1.m_skillTextId = 163; |
|
info1.m_infoTextId = 166; |
|
GlobalsVar.gSkinsInfo.Add(info1); |
|
|
|
SkinsInfo info2 = new SkinsInfo(); |
|
info2.m_type = SkinType.FOX; |
|
info2.m_nameTextId = 161; |
|
info2.m_skillTextId = 164; |
|
info2.m_infoTextId = 167; |
|
GlobalsVar.gSkinsInfo.Add(info2); |
|
|
|
SkinsInfo info3 = new SkinsInfo(); |
|
info3.m_type = SkinType.SKUNK; |
|
info3.m_nameTextId = 162; |
|
info3.m_skillTextId = 165; |
|
info3.m_infoTextId = 168; |
|
GlobalsVar.gSkinsInfo.Add(info3); |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void InitAds() |
|
{ |
|
#if UNITY_IOS |
|
Advertisement.Initialize( "3715574", false ); |
|
#elif UNITY_ANDROID |
|
Advertisement.Initialize("3715575", false); |
|
#endif |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void InitStoreOffersInfo() |
|
{ |
|
StoreOffersInfo coins1 = new StoreOffersInfo(); |
|
coins1.m_sku = "com.apelsingames.furfurycoins5000"; |
|
coins1.m_count = 5000; |
|
coins1.m_price = "0.99$"; |
|
GlobalsVar.gStoreOffersInfo.Add(coins1.m_sku, coins1); |
|
|
|
StoreOffersInfo coins2 = new StoreOffersInfo(); |
|
coins2.m_sku = "com.apelsingames.furfurycoins18000"; |
|
coins2.m_count = 18000; |
|
coins2.m_price = "4.99$"; |
|
GlobalsVar.gStoreOffersInfo.Add(coins2.m_sku, coins2); |
|
|
|
StoreOffersInfo coins3 = new StoreOffersInfo(); |
|
coins3.m_sku = "com.apelsingames.furfurycoins64000"; |
|
coins3.m_count = 64000; |
|
coins3.m_price = "9.99$"; |
|
GlobalsVar.gStoreOffersInfo.Add(coins3.m_sku, coins3); |
|
|
|
StoreOffersInfo gems1 = new StoreOffersInfo(); |
|
gems1.m_sku = "com.apelsingames.furfurygems100"; |
|
gems1.m_count = 100; |
|
gems1.m_price = "0.99$"; |
|
GlobalsVar.gStoreOffersInfo.Add(gems1.m_sku, gems1); |
|
|
|
StoreOffersInfo gems2 = new StoreOffersInfo(); |
|
gems2.m_sku = "com.apelsingames.furfurygems600"; |
|
gems2.m_count = 600; |
|
gems2.m_price = "4.99$"; |
|
GlobalsVar.gStoreOffersInfo.Add(gems2.m_sku, gems2); |
|
|
|
StoreOffersInfo gems3 = new StoreOffersInfo(); |
|
gems3.m_sku = "com.apelsingames.furfurygems1300"; |
|
gems3.m_count = 1300; |
|
gems3.m_price = "9.99$"; |
|
GlobalsVar.gStoreOffersInfo.Add(gems3.m_sku, gems3); |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void InitPurchaser() |
|
{ |
|
GlobalsVar.gPurchaser = GameObject.Find("Purchaser").GetComponent<Purchaser>(); |
|
DontDestroyOnLoad(GlobalsVar.gPurchaser); |
|
GlobalsVar.gPurchaser.InitializePurchasing(); |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void InitGameText() |
|
{ |
|
GlobalsVar.gGameTextMng = new GameTextManager(); |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void InitUser() |
|
{ |
|
GlobalsVar.gUser = new User(); |
|
GlobalsVar.gUser.Load(); |
|
|
|
InitEnergyTime(GlobalsVar.gDeltaTimeFromLastSave); |
|
} |
|
|
|
//------------------------------------------------------------------- |
|
void InitEnergyTime(float delta) |
|
{ |
|
if (delta > 0f) |
|
{ |
|
int energyCount = (int)(delta / GlobalsVar.gTimeToRegenerateEnergy); |
|
if (energyCount > 0) |
|
{ |
|
if (GlobalsVar.gUser.Energy < GlobalsVar.gMaxEnergyCount) |
|
{ |
|
if (GlobalsVar.gUser.Energy + energyCount >= GlobalsVar.gMaxEnergyCount) |
|
{ |
|
int deltaHearts = GlobalsVar.gMaxEnergyCount - GlobalsVar.gUser.Energy; |
|
GlobalsVar.gUser.IncEnergy(deltaHearts); |
|
return; |
|
} |
|
else |
|
{ |
|
GlobalsVar.gUser.IncEnergy(energyCount); |
|
float deltaTime = delta - GlobalsVar.gTimeToRegenerateEnergy * energyCount; |
|
GlobalsVar.gCurrentTimeToRegenerateEnergy -= deltaTime; |
|
GlobalsVar.gCurrentTimeToRegenerateEnergy = CommonFunctions.ClampDown(GlobalsVar.gCurrentTimeToRegenerateEnergy, 0f); |
|
} |
|
} |
|
} |
|
else |
|
{ |
|
float deltaTime = delta - GlobalsVar.gTimeToRegenerateEnergy * energyCount; |
|
GlobalsVar.gCurrentTimeToRegenerateEnergy -= deltaTime; |
|
GlobalsVar.gCurrentTimeToRegenerateEnergy = CommonFunctions.ClampDown(GlobalsVar.gCurrentTimeToRegenerateEnergy, 0f); |
|
} |
|
} |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
private void InitAbilities() |
|
{ |
|
GlobalsVar.gMainAbilities = new MainAbility(); |
|
GlobalsVar.gMainAbilities.Init(); |
|
|
|
GlobalsVar.gInGameAbilities = new InGameAbilities(); |
|
GlobalsVar.gInGameAbilities.Init(); |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
void LoadResources() |
|
{ |
|
GlobalsVar.gGrayscaleMaterial = Resources.Load("Materials/grayscale_material") as Material; |
|
} |
|
|
|
//------------------------------------------------------------------------------------------ |
|
private void Update() |
|
{ |
|
m_currentLoadingTime += Time.deltaTime; |
|
if (m_currentLoadingTime > m_loadingTime) |
|
m_currentLoadingTime = m_loadingTime; |
|
|
|
float progress = m_currentLoadingTime / m_loadingTime; |
|
_loadingProgress.SetProgress(progress); |
|
_loadingLabel.text = ((int)(progress * 100)).ToString() + "%"; |
|
|
|
if (!m_inited) |
|
return; |
|
|
|
if (m_needLoadScene && m_currentLoadingTime >= m_loadingTime) |
|
{ |
|
m_needLoadScene = false; |
|
SceneManager.LoadScene("Scenes/MainMenu"); |
|
} |
|
} |
|
}
|
|
|