Merge branch 'develop' of http://gitea.capers.co.kr:3000/capers/CapersRepo into lmg
@ -1,4 +1,5 @@
|
|||||||
using BehaviorDesigner.Runtime;
|
using BehaviorDesigner.Runtime;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Enemies;
|
using BlueWater.Enemies;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Players;
|
using BlueWater.Players;
|
||||||
@ -62,6 +63,10 @@ namespace BlueWater.Npcs.Crews
|
|||||||
[field: SerializeField, Required]
|
[field: SerializeField, Required]
|
||||||
public AiMovement AIMovement { get; private set; }
|
public AiMovement AIMovement { get; private set; }
|
||||||
|
|
||||||
|
[Title("사운드")]
|
||||||
|
[SerializeField]
|
||||||
|
private string _createCrewSfxName = "CreateCrew";
|
||||||
|
|
||||||
public bool IsMoving { get; protected set; }
|
public bool IsMoving { get; protected set; }
|
||||||
|
|
||||||
private Vector3 _currentDirection = Vector3.right;
|
private Vector3 _currentDirection = Vector3.right;
|
||||||
@ -126,6 +131,7 @@ namespace BlueWater.Npcs.Crews
|
|||||||
|
|
||||||
public virtual void Initialize()
|
public virtual void Initialize()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_createCrewSfxName);
|
||||||
BehaviorTree.EnableBehavior();
|
BehaviorTree.EnableBehavior();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
|
||||||
namespace BlueWater.Npcs.Customers
|
namespace BlueWater.Npcs.Customers
|
||||||
{
|
{
|
||||||
public class VomitState : IStateMachine<Customer>
|
public class VomitState : IStateMachine<Customer>
|
||||||
{
|
{
|
||||||
|
private string _vomitSfxName = "Vomit";
|
||||||
private bool _isVomiting;
|
private bool _isVomiting;
|
||||||
|
|
||||||
public void EnterState(Customer character)
|
public void EnterState(Customer character)
|
||||||
@ -13,8 +15,9 @@ namespace BlueWater.Npcs.Customers
|
|||||||
|
|
||||||
public void UpdateState(Customer character)
|
public void UpdateState(Customer character)
|
||||||
{
|
{
|
||||||
if (character.SpineController.IsAnimationComplete())
|
if (!_isVomiting && character.SpineController.IsAnimationComplete())
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_vomitSfxName);
|
||||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
||||||
_isVomiting = true;
|
_isVomiting = true;
|
||||||
}
|
}
|
||||||
|
@ -10,9 +10,6 @@ namespace BlueWater.Players
|
|||||||
public class PlayerHealthPoint : MonoBehaviour, IDamageable
|
public class PlayerHealthPoint : MonoBehaviour, IDamageable
|
||||||
{
|
{
|
||||||
// Components
|
// Components
|
||||||
[SerializeField]
|
|
||||||
private SpriteRenderer _spriteRenderer;
|
|
||||||
|
|
||||||
private IDashable _dashable;
|
private IDashable _dashable;
|
||||||
private ISkillHandler _skillHandler;
|
private ISkillHandler _skillHandler;
|
||||||
|
|
||||||
@ -29,9 +26,22 @@ namespace BlueWater.Players
|
|||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public bool IsInvincible { get; private set; }
|
public bool IsInvincible { get; private set; }
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private bool _isShaking;
|
||||||
|
|
||||||
|
[SerializeField, ShowIf("@_isShaking")]
|
||||||
|
private float _shakingPower = 0.5f;
|
||||||
|
|
||||||
|
[SerializeField, ShowIf("@_isShaking")]
|
||||||
|
private float _shakingDuration = 0.1f;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string attackedSfxName = "CombatPlayerAttacked";
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string heartRecoverySfxName;
|
private string heartRecoverySfxName;
|
||||||
|
|
||||||
|
private Material _materialInstance;
|
||||||
private WaitForSeconds _flashWhiteWaitTime;
|
private WaitForSeconds _flashWhiteWaitTime;
|
||||||
private Coroutine _flashWhiteCoroutine;
|
private Coroutine _flashWhiteCoroutine;
|
||||||
private Coroutine _damageIntervalCoroutine;
|
private Coroutine _damageIntervalCoroutine;
|
||||||
@ -55,8 +65,6 @@ namespace BlueWater.Players
|
|||||||
[Button("컴포넌트 초기화")]
|
[Button("컴포넌트 초기화")]
|
||||||
private void InitializeComponents()
|
private void InitializeComponents()
|
||||||
{
|
{
|
||||||
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
|
|
||||||
|
|
||||||
_dashable = GetComponent<IDashable>();
|
_dashable = GetComponent<IDashable>();
|
||||||
_skillHandler = GetComponent<ISkillHandler>();
|
_skillHandler = GetComponent<ISkillHandler>();
|
||||||
}
|
}
|
||||||
@ -106,12 +114,17 @@ namespace BlueWater.Players
|
|||||||
return !isDashing && !isActivatingSkill;
|
return !isDashing && !isActivatingSkill;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Button("데미지 테스트")]
|
||||||
public void TakeDamage(int damageAmount)
|
public void TakeDamage(int damageAmount)
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(attackedSfxName);
|
||||||
IsInvincible = true;
|
IsInvincible = true;
|
||||||
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
|
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
|
||||||
SetCurrentHealthPoint(changeHp);
|
SetCurrentHealthPoint(changeHp);
|
||||||
AudioManager.Instance.PlaySfx("CombatPlayerAttacked");
|
if (_isShaking)
|
||||||
|
{
|
||||||
|
VisualFeedbackManager.Instance.CameraShake(TycoonCameraManager.Instance.BaseCamera, _shakingPower, _shakingDuration);
|
||||||
|
}
|
||||||
|
|
||||||
// 죽었는지 체크
|
// 죽었는지 체크
|
||||||
if (changeHp == 0f)
|
if (changeHp == 0f)
|
||||||
@ -120,7 +133,7 @@ namespace BlueWater.Players
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_spriteRenderer.material.HasInt(IsHitHash))
|
if (_materialInstance.HasInt(IsHitHash))
|
||||||
{
|
{
|
||||||
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||||
}
|
}
|
||||||
@ -143,9 +156,9 @@ namespace BlueWater.Players
|
|||||||
{
|
{
|
||||||
for (var i = 0; i < 5; i++)
|
for (var i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
_spriteRenderer.material.SetInt(IsHitHash, 1);
|
_materialInstance.SetInt(IsHitHash, 1);
|
||||||
yield return _flashWhiteWaitTime;
|
yield return _flashWhiteWaitTime;
|
||||||
_spriteRenderer.material.SetInt(IsHitHash, 0);
|
_materialInstance.SetInt(IsHitHash, 0);
|
||||||
yield return _flashWhiteWaitTime;
|
yield return _flashWhiteWaitTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,5 +173,6 @@ namespace BlueWater.Players
|
|||||||
|
|
||||||
public void ActivateInvincibility() => IsInvincible = true;
|
public void ActivateInvincibility() => IsInvincible = true;
|
||||||
public void DeactivateInvincibility() => IsInvincible = false;
|
public void DeactivateInvincibility() => IsInvincible = false;
|
||||||
|
public void SetMaterialInstance(Material materialInstance) => _materialInstance = materialInstance;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Tycoons;
|
using BlueWater.Tycoons;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
@ -27,7 +28,26 @@ namespace BlueWater.Players.Tycoons
|
|||||||
|
|
||||||
public bool IsMoveEnabled { get; private set; } = true;
|
public bool IsMoveEnabled { get; private set; } = true;
|
||||||
|
|
||||||
public bool IsMoving { get; private set; }
|
private bool _isMoving;
|
||||||
|
public bool IsMoving
|
||||||
|
{
|
||||||
|
get => _isMoving;
|
||||||
|
private set
|
||||||
|
{
|
||||||
|
if (_isMoving == value) return;
|
||||||
|
|
||||||
|
_isMoving = value;
|
||||||
|
|
||||||
|
if (_isMoving)
|
||||||
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_walkingSfxName, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AudioManager.Instance.StopSfx(_walkingSfxName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Dash
|
// Dash
|
||||||
[field: Title("대쉬")]
|
[field: Title("대쉬")]
|
||||||
@ -43,6 +63,10 @@ namespace BlueWater.Players.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private ParticleSystem _dashParticle;
|
private ParticleSystem _dashParticle;
|
||||||
|
|
||||||
|
[Title("사운드")]
|
||||||
|
[SerializeField]
|
||||||
|
private string _walkingSfxName = "TycoonPlayerWalking";
|
||||||
|
|
||||||
public bool IsDashEnabled { get; private set; } = true;
|
public bool IsDashEnabled { get; private set; } = true;
|
||||||
public bool IsDashing { get; private set; }
|
public bool IsDashing { get; private set; }
|
||||||
|
|
||||||
@ -59,6 +83,7 @@ namespace BlueWater.Players.Tycoons
|
|||||||
if (value == Vector3.zero) return;
|
if (value == Vector3.zero) return;
|
||||||
|
|
||||||
_currentDirection = value;
|
_currentDirection = value;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,7 +197,11 @@ namespace BlueWater.Players.Tycoons
|
|||||||
|
|
||||||
public void Move()
|
public void Move()
|
||||||
{
|
{
|
||||||
if (IsDashing) return;
|
if (IsDashing)
|
||||||
|
{
|
||||||
|
IsMoving = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
CurrentDirection = _inputDirection;
|
CurrentDirection = _inputDirection;
|
||||||
IsMoving = _inputDirection != Vector3.zero;
|
IsMoving = _inputDirection != Vector3.zero;
|
||||||
|
@ -5,7 +5,6 @@ using BlueWater.Uis;
|
|||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using Spine.Unity;
|
using Spine.Unity;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.InputSystem;
|
|
||||||
|
|
||||||
namespace BlueWater.Players.Tycoons
|
namespace BlueWater.Players.Tycoons
|
||||||
{
|
{
|
||||||
@ -67,6 +66,8 @@ namespace BlueWater.Players.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Vector3 _offset = new(0f, 1.5f, 0f);
|
private Vector3 _offset = new(0f, 1.5f, 0f);
|
||||||
|
|
||||||
|
public Material MaterialInstance { get; protected set; }
|
||||||
|
|
||||||
public bool IsCleaningFloor { get; set; }
|
public bool IsCleaningFloor { get; set; }
|
||||||
public bool IsCleaningTable { get; set; }
|
public bool IsCleaningTable { get; set; }
|
||||||
public bool IsCleaningMold { get; set; }
|
public bool IsCleaningMold { get; set; }
|
||||||
@ -109,6 +110,12 @@ namespace BlueWater.Players.Tycoons
|
|||||||
|
|
||||||
TycoonMovement.OnSucceedDash += DashSucceed;
|
TycoonMovement.OnSucceedDash += DashSucceed;
|
||||||
|
|
||||||
|
var originalMaterial = SpineController.SkeletonAnimation.SkeletonDataAsset.atlasAssets[0].PrimaryMaterial;
|
||||||
|
var newMaterial = SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial];
|
||||||
|
MaterialInstance = Instantiate(newMaterial);
|
||||||
|
SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial] = MaterialInstance;
|
||||||
|
PlayerHealthPoint.SetMaterialInstance(MaterialInstance);
|
||||||
|
|
||||||
IdleState = new IdleState();
|
IdleState = new IdleState();
|
||||||
WalkingState = new WalkingState();
|
WalkingState = new WalkingState();
|
||||||
DashState = new DashState();
|
DashState = new DashState();
|
||||||
@ -167,7 +174,10 @@ namespace BlueWater.Players.Tycoons
|
|||||||
|
|
||||||
private void Die()
|
private void Die()
|
||||||
{
|
{
|
||||||
int saveGold = Mathf.RoundToInt(TycoonManager.Instance.TycoonStatus.CurrentGold * TycoonManager.Instance.TycoonStatus.EndGoldMultiplier);
|
int currentGold = TycoonManager.Instance.TycoonStatus.CurrentGold;
|
||||||
|
float endGoldMultiplier = -0.5f + TycoonManager.Instance.TycoonStatus.EndGoldMultiplier;
|
||||||
|
int addedGold = Mathf.RoundToInt(currentGold * endGoldMultiplier);
|
||||||
|
int saveGold = currentGold + addedGold;
|
||||||
ES3.Save(SaveData.EndGold, saveGold);
|
ES3.Save(SaveData.EndGold, saveGold);
|
||||||
ES3.Save(SaveData.CompleteFirstGame, true);
|
ES3.Save(SaveData.CompleteFirstGame, true);
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ using BlueWater.Interfaces;
|
|||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Npcs.Customers;
|
using BlueWater.Npcs.Customers;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -202,26 +203,31 @@ namespace BlueWater.Editors
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 새로운 데이터를 기존 데이터에 덮어쓰거나 추가
|
// 새로운 데이터를 처리
|
||||||
foreach (var newDataItem in newData)
|
foreach (var newDataItem in newData)
|
||||||
{
|
{
|
||||||
if (newDataItem == null || newDataItem.Value == null) continue;
|
if (newDataItem == null || newDataItem.Value == null) continue;
|
||||||
|
|
||||||
if (existingDataDict.TryGetValue(newDataItem.Key, out var existingItem))
|
if (existingDataDict.TryGetValue(newDataItem.Key, out var existingItem))
|
||||||
{
|
{
|
||||||
|
// 기존 데이터가 있으면 업데이트
|
||||||
var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
|
var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
|
||||||
foreach (var property in properties)
|
foreach (var property in properties)
|
||||||
|
{
|
||||||
|
// JSON 데이터에서 덮어쓸 프로퍼티만 처리
|
||||||
|
if (property.GetCustomAttribute<JsonPropertyAttribute>() != null)
|
||||||
{
|
{
|
||||||
var newValue = property.GetValue(newDataItem.Value);
|
var newValue = property.GetValue(newDataItem.Value);
|
||||||
var existingValue = property.GetValue(existingItem.Value);
|
var existingValue = property.GetValue(existingItem.Value);
|
||||||
|
|
||||||
// 덮어쓰기 조건 (참조 타입이거나, 값 타입이 기본값이 아닌 경우에만 덮어씀)
|
// 덮어쓰기 조건 확인
|
||||||
if (ShouldOverwriteProperty(newValue, existingValue, property))
|
if (ShouldOverwriteProperty(newValue, existingValue, property))
|
||||||
{
|
{
|
||||||
property.SetValue(existingItem.Value, newValue);
|
property.SetValue(existingItem.Value, newValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 기존 데이터에 없으면 새로 추가
|
// 기존 데이터에 없으면 새로 추가
|
||||||
@ -229,7 +235,7 @@ namespace BlueWater.Editors
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 기존 데이터 리스트를 다시 갱신
|
// 기존 데이터를 유지하고 새로운 데이터를 덮어쓰거나 추가한 결과로 갱신
|
||||||
existingData.Clear();
|
existingData.Clear();
|
||||||
existingData.AddRange(existingDataDict.Values);
|
existingData.AddRange(existingDataDict.Values);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using Sirenix.Utilities;
|
using Sirenix.Utilities;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -11,42 +12,55 @@ namespace BlueWater.Items
|
|||||||
public class CocktailData : IPickup
|
public class CocktailData : IPickup
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("오차 범위"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("오차 범위"), BoxGroup("Json 데이터 영역")]
|
||||||
public int RatioRange { get; set; }
|
public int RatioRange { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx1 { get; set; }
|
public string IngredientIdx1 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio1 { get; set; }
|
public int IngredientRatio1 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx2 { get; set; }
|
public string IngredientIdx2 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio2 { get; set; }
|
public int IngredientRatio2 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx3 { get; set; }
|
public string IngredientIdx3 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio3 { get; set; }
|
public int IngredientRatio3 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx4 { get; set; }
|
public string IngredientIdx4 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio4 { get; set; }
|
public int IngredientRatio4 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx5 { get; set; }
|
public string IngredientIdx5 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio5 { get; set; }
|
public int IngredientRatio5 { get; set; }
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -16,15 +17,19 @@ namespace BlueWater.Items
|
|||||||
public class LiquidData : IIdx
|
public class LiquidData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")]
|
||||||
public LiquidType Type { get; set; }
|
public LiquidType Type { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Amount { get; set; }
|
public int Amount { get; set; }
|
||||||
|
|
||||||
|
@ -38,27 +38,35 @@ namespace BlueWater.Items
|
|||||||
public class ItemData : IPickup
|
public class ItemData : IPickup
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("아이템 종류"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("아이템 종류"), BoxGroup("Json 데이터 영역")]
|
||||||
public ItemType Type { get; set; }
|
public ItemType Type { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("재료 종류"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("재료 종류"), BoxGroup("Json 데이터 영역")]
|
||||||
public IngredientType IngredientType { get; set; }
|
public IngredientType IngredientType { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("아이템 품질"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("아이템 품질"), BoxGroup("Json 데이터 영역")]
|
||||||
public ItemQuality Quality { get; set; }
|
public ItemQuality Quality { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Price { get; set; }
|
public int Price { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("무게"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("무게"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Weight { get; set; }
|
public int Weight { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("설명"), TextArea(3, 10), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("설명"), TextArea(3, 10), BoxGroup("Json 데이터 영역")]
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Localization.Settings;
|
using UnityEngine.Localization.Settings;
|
||||||
@ -11,7 +12,11 @@ namespace BlueWater
|
|||||||
Korean = 0,
|
Korean = 0,
|
||||||
English = 1,
|
English = 1,
|
||||||
ChineseSimplified = 2,
|
ChineseSimplified = 2,
|
||||||
Spanish = 3
|
ChineseTradition = 3,
|
||||||
|
Japanese = 4,
|
||||||
|
Spanish = 5,
|
||||||
|
Russian = 6,
|
||||||
|
French = 7
|
||||||
}
|
}
|
||||||
|
|
||||||
public class LocalizationManager : Singleton<LocalizationManager>
|
public class LocalizationManager : Singleton<LocalizationManager>
|
||||||
@ -19,7 +24,13 @@ namespace BlueWater
|
|||||||
public bool IsInitialized;
|
public bool IsInitialized;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Material _defaultFontMaterial;
|
private List<Material> _usedFontMaterials = new();
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private float _defaultOutlineSize = 0.2f;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private float _chineseOutlineSize = 0.05f;
|
||||||
|
|
||||||
private bool _isChanging;
|
private bool _isChanging;
|
||||||
|
|
||||||
@ -51,13 +62,13 @@ namespace BlueWater
|
|||||||
yield return LocalizationSettings.InitializationOperation;
|
yield return LocalizationSettings.InitializationOperation;
|
||||||
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[(int)localeType];
|
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[(int)localeType];
|
||||||
|
|
||||||
if (localeType == LocaleType.ChineseSimplified)
|
if (localeType == LocaleType.ChineseSimplified || localeType == LocaleType.ChineseTradition)
|
||||||
{
|
{
|
||||||
SetMaterialOutline(0.1f);
|
SetMaterialOutline(_chineseOutlineSize);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetMaterialOutline(0.2f);
|
SetMaterialOutline(_defaultOutlineSize);
|
||||||
}
|
}
|
||||||
ES3.Save(SaveData.Locale, (int)localeType);
|
ES3.Save(SaveData.Locale, (int)localeType);
|
||||||
|
|
||||||
@ -87,14 +98,21 @@ namespace BlueWater
|
|||||||
LocaleType.Korean => "한국어",
|
LocaleType.Korean => "한국어",
|
||||||
LocaleType.English => "English",
|
LocaleType.English => "English",
|
||||||
LocaleType.ChineseSimplified => "中文(简体)",
|
LocaleType.ChineseSimplified => "中文(简体)",
|
||||||
|
LocaleType.ChineseTradition => "中文(繁體)",
|
||||||
|
LocaleType.Japanese => "日本語",
|
||||||
LocaleType.Spanish => "Español",
|
LocaleType.Spanish => "Español",
|
||||||
|
LocaleType.Russian => "Русский",
|
||||||
|
LocaleType.French => "Français",
|
||||||
_ => "Unknown"
|
_ => "Unknown"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetMaterialOutline(float value)
|
public void SetMaterialOutline(float value)
|
||||||
{
|
{
|
||||||
_defaultFontMaterial.SetFloat(OutlineWidthHash, value);
|
foreach (var element in _usedFontMaterials)
|
||||||
|
{
|
||||||
|
element.SetFloat(OutlineWidthHash, value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,6 +47,8 @@ namespace BlueWater
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private PlayerInput _currentPlayerInput;
|
private PlayerInput _currentPlayerInput;
|
||||||
|
|
||||||
|
public bool IsInitialized { get; private set; }
|
||||||
|
|
||||||
protected override void OnAwake()
|
protected override void OnAwake()
|
||||||
{
|
{
|
||||||
base.OnAwake();
|
base.OnAwake();
|
||||||
@ -73,6 +75,7 @@ namespace BlueWater
|
|||||||
|
|
||||||
private async Task Initialize()
|
private async Task Initialize()
|
||||||
{
|
{
|
||||||
|
IsInitialized = false;
|
||||||
await Task.Delay(1000);
|
await Task.Delay(1000);
|
||||||
|
|
||||||
DisableAllActionMaps();
|
DisableAllActionMaps();
|
||||||
@ -86,6 +89,8 @@ namespace BlueWater
|
|||||||
{
|
{
|
||||||
SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IsInitialized = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -55,6 +56,9 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private float _playerHoldingTime = 3f;
|
private float _playerHoldingTime = 3f;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _attackMoldSfxName = "AttackMold";
|
||||||
|
|
||||||
private bool _isPlayerInteracting;
|
private bool _isPlayerInteracting;
|
||||||
private int _currentLevel;
|
private int _currentLevel;
|
||||||
|
|
||||||
@ -121,6 +125,7 @@ namespace BlueWater.Tycoons
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_attackMoldSfxName, true);
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = true;
|
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = true;
|
||||||
_isPlayerInteracting = true;
|
_isPlayerInteracting = true;
|
||||||
}
|
}
|
||||||
@ -135,6 +140,7 @@ namespace BlueWater.Tycoons
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.StopSfx(_attackMoldSfxName);
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = false;
|
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = false;
|
||||||
_isPlayerInteracting = false;
|
_isPlayerInteracting = false;
|
||||||
HoldingElapsedTime = 0f;
|
HoldingElapsedTime = 0f;
|
||||||
@ -373,21 +379,27 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel0, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel0, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel0, false);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel1, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel1, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel1, false);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel2, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel2, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel2, false);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel3, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel3, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel3, false);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel4, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel4, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel4, false);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel5, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel5, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel5, false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Exception("_currentLevel 존재하지 않는 값");
|
throw new Exception("_currentLevel 존재하지 않는 값");
|
||||||
|
@ -1,10 +1,17 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Players;
|
using BlueWater.Players;
|
||||||
using BlueWater.Uis;
|
using BlueWater.Uis;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Tycoons
|
namespace BlueWater.Tycoons
|
||||||
{
|
{
|
||||||
|
public static class PumpSpineAnimation
|
||||||
|
{
|
||||||
|
public const string Idle = "Idle";
|
||||||
|
public const string Run = "Run";
|
||||||
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class Pump : InteractionFurniture
|
public class Pump : InteractionFurniture
|
||||||
{
|
{
|
||||||
@ -23,6 +30,12 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField, Range(0, 1000)]
|
[SerializeField, Range(0, 1000)]
|
||||||
private int addedLiquid = 400;
|
private int addedLiquid = 400;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _attackSfxName = "AttackWhip";
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _playPumpSfxName = "PlayPump";
|
||||||
|
|
||||||
private bool _isPlayerInteracting;
|
private bool _isPlayerInteracting;
|
||||||
|
|
||||||
protected override void Awake()
|
protected override void Awake()
|
||||||
@ -36,7 +49,7 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
|
|
||||||
_spineController.PlayAnimation("Idle", true);
|
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
@ -72,16 +85,20 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
public override void Interaction()
|
public override void Interaction()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_attackSfxName, true);
|
||||||
|
AudioManager.Instance.PlaySfx(_playPumpSfxName, true);
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsPumping = true;
|
GameManager.Instance.CurrentTycoonPlayer.IsPumping = true;
|
||||||
_isPlayerInteracting = true;
|
_isPlayerInteracting = true;
|
||||||
_spineController.PlayAnimation("Run", true);
|
_spineController.PlayAnimation(PumpSpineAnimation.Run, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void CancelInteraction()
|
public override void CancelInteraction()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.StopSfx(_attackSfxName);
|
||||||
|
AudioManager.Instance.StopSfx(_playPumpSfxName);
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsPumping = false;
|
GameManager.Instance.CurrentTycoonPlayer.IsPumping = false;
|
||||||
_isPlayerInteracting = false;
|
_isPlayerInteracting = false;
|
||||||
_spineController.PlayAnimation("Idle", true);
|
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanInteraction()
|
public override bool CanInteraction()
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using BlueWater.Audios;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -9,6 +10,7 @@ namespace BlueWater.Tycoons
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class RewardBox : InteractionFurniture
|
public class RewardBox : InteractionFurniture
|
||||||
{
|
{
|
||||||
|
[Title("참조")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private AnimationController _animationController;
|
private AnimationController _animationController;
|
||||||
|
|
||||||
@ -25,6 +27,9 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Ease _ease = Ease.OutQuad;
|
private Ease _ease = Ease.OutQuad;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _interactionFailedSfxName = "RewardBoxInteractionFailed";
|
||||||
|
|
||||||
private Tween _unavailablePurchaseTween;
|
private Tween _unavailablePurchaseTween;
|
||||||
private RewardBoxType _rewardBoxType;
|
private RewardBoxType _rewardBoxType;
|
||||||
private int _requiredGold;
|
private int _requiredGold;
|
||||||
@ -55,6 +60,7 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
if (TycoonManager.Instance.TycoonStatus.CurrentGold < _requiredGold)
|
if (TycoonManager.Instance.TycoonStatus.CurrentGold < _requiredGold)
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_interactionFailedSfxName);
|
||||||
_unavailablePurchaseTween.Restart();
|
_unavailablePurchaseTween.Restart();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Npcs.Crews;
|
using BlueWater.Npcs.Crews;
|
||||||
@ -17,6 +18,9 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
protected SpriteRenderer CocktailGlassImage;
|
protected SpriteRenderer CocktailGlassImage;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _putDownSfxName = "PutDownCocktail";
|
||||||
|
|
||||||
// 서빙 테이블 기준 아이템이 있는지 없는지
|
// 서빙 테이블 기준 아이템이 있는지 없는지
|
||||||
private IPickup _currentPickupItem;
|
private IPickup _currentPickupItem;
|
||||||
public IPickup CurrentPickupItem
|
public IPickup CurrentPickupItem
|
||||||
@ -78,6 +82,7 @@ namespace BlueWater.Tycoons
|
|||||||
// 테이블에 칵테일을 놓는 경우
|
// 테이블에 칵테일을 놓는 경우
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_putDownSfxName);
|
||||||
CurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
|
CurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
|
||||||
CocktailGlassImage.sprite = CurrentPickupItem.Sprite;
|
CocktailGlassImage.sprite = CurrentPickupItem.Sprite;
|
||||||
CocktailGlassImage.enabled = true;
|
CocktailGlassImage.enabled = true;
|
||||||
|
@ -122,11 +122,8 @@ namespace BlueWater.Tycoons
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_isCrewInteracting)
|
|
||||||
{
|
|
||||||
OnInteractionCompleted?.Invoke();
|
OnInteractionCompleted?.Invoke();
|
||||||
OnInteractionCompleted = null;
|
OnInteractionCompleted = null;
|
||||||
}
|
|
||||||
|
|
||||||
EventManager.InvokeCleaningResult(true);
|
EventManager.InvokeCleaningResult(true);
|
||||||
CleanTable();
|
CleanTable();
|
||||||
@ -222,7 +219,7 @@ namespace BlueWater.Tycoons
|
|||||||
_currentLevelData = TycoonManager.Instance.GetCurrentLevelData();
|
_currentLevelData = TycoonManager.Instance.GetCurrentLevelData();
|
||||||
Food.sprite = _emptyBeerGlass;
|
Food.sprite = _emptyBeerGlass;
|
||||||
Food.enabled = true;
|
Food.enabled = true;
|
||||||
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Cleaning, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.DirtyTableWaitTime);
|
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.DirtyTableWaitTime);
|
||||||
IsCleaned = false;
|
IsCleaned = false;
|
||||||
|
|
||||||
var crewController = TycoonManager.Instance.CrewController;
|
var crewController = TycoonManager.Instance.CrewController;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using BlueWater.Audios;
|
using BlueWater.Audios;
|
||||||
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Players;
|
using BlueWater.Players;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -199,10 +200,17 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
private void ChangeRandomCocktail()
|
private void ChangeRandomCocktail()
|
||||||
{
|
{
|
||||||
var randomCocktail = TycoonManager.Instance.TycoonIngredientController.GetRandomCocktailData();
|
IPickup playerCurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
|
||||||
|
if (playerCurrentPickupItem != null)
|
||||||
|
{
|
||||||
|
CocktailData discardCocktailData = ItemManager.Instance.CocktailDataSo.GetDataByIdx(playerCurrentPickupItem.Idx);
|
||||||
|
EventManager.InvokeCocktailServedToCustomer(discardCocktailData, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
CocktailData randomCocktail = TycoonManager.Instance.TycoonIngredientController.GetRandomCocktailData();
|
||||||
EventManager.InvokeChangedRandomCocktail(randomCocktail);
|
EventManager.InvokeChangedRandomCocktail(randomCocktail);
|
||||||
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Waiting, 0,
|
EventManager.InvokeCocktailCompleted(randomCocktail, false);
|
||||||
TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
|
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
|
||||||
|
|
||||||
HoldingElapsedTime = 0f;
|
HoldingElapsedTime = 0f;
|
||||||
_canInteraction = false;
|
_canInteraction = false;
|
||||||
|
@ -102,7 +102,7 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Cleaning, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingWaitTime);
|
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingWaitTime);
|
||||||
var crewController = TycoonManager.Instance.CrewController;
|
var crewController = TycoonManager.Instance.CrewController;
|
||||||
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
|
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
|
||||||
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
|
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
|
||||||
@ -134,11 +134,9 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
|
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
|
||||||
}
|
}
|
||||||
if (_isCrewInteracting)
|
|
||||||
{
|
|
||||||
OnInteractionCompleted?.Invoke();
|
OnInteractionCompleted?.Invoke();
|
||||||
OnInteractionCompleted = null;
|
OnInteractionCompleted = null;
|
||||||
}
|
|
||||||
|
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
|
@ -35,3 +35,5 @@ MonoBehaviour:
|
|||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 1bc7195dc49231b49b0adb01fac3ec8c, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 1bc7195dc49231b49b0adb01fac3ec8c, type: 3}
|
||||||
- <BgmName>k__BackingField: TycoonBgm02
|
- <BgmName>k__BackingField: TycoonBgm02
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 26776146cb587a74aa860cdac5318a39, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 26776146cb587a74aa860cdac5318a39, type: 3}
|
||||||
|
- <BgmName>k__BackingField: TycoonResult
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 727c8fcf7bfe53744968a986ff7b43aa, type: 3}
|
||||||
|
@ -76,13 +76,15 @@ MonoBehaviour:
|
|||||||
- <SfxName>k__BackingField: TycoonGameStart
|
- <SfxName>k__BackingField: TycoonGameStart
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: cdccda37bdd4fb74d9cc670189794dce, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: cdccda37bdd4fb74d9cc670189794dce, type: 3}
|
||||||
- <SfxName>k__BackingField: TycoonGameOver
|
- <SfxName>k__BackingField: TycoonGameOver
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 7163b3c58a6e6b04794cee1e110f19de, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 03604d77826d7854b9e62231641e673b, type: 3}
|
||||||
- <SfxName>k__BackingField: CleaningFloor
|
- <SfxName>k__BackingField: CleaningFloor
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 67376a69110e3974d8881b5c746622a7, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 67376a69110e3974d8881b5c746622a7, type: 3}
|
||||||
- <SfxName>k__BackingField: CleaningTable
|
- <SfxName>k__BackingField: CleaningTable
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 717f06a127178564ab5ea8cdf9da3ef2, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 717f06a127178564ab5ea8cdf9da3ef2, type: 3}
|
||||||
- <SfxName>k__BackingField: ManualBook
|
- <SfxName>k__BackingField: OpenManualBook
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: a324e82da09f7f84cab40d74f755c9e8, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: a324e82da09f7f84cab40d74f755c9e8, type: 3}
|
||||||
|
- <SfxName>k__BackingField: CloseManualBook
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: b1d132518b614a743ac3a571ac75718c, type: 3}
|
||||||
- <SfxName>k__BackingField: SucceedServing
|
- <SfxName>k__BackingField: SucceedServing
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 2d6aad5746316bf4fb6bb7aed8d89c4e, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 2d6aad5746316bf4fb6bb7aed8d89c4e, type: 3}
|
||||||
- <SfxName>k__BackingField: FailedServing
|
- <SfxName>k__BackingField: FailedServing
|
||||||
@ -91,7 +93,33 @@ MonoBehaviour:
|
|||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 9778d97789d1ea245a9d31c2ff915bb7, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 9778d97789d1ea245a9d31c2ff915bb7, type: 3}
|
||||||
- <SfxName>k__BackingField: GainGold
|
- <SfxName>k__BackingField: GainGold
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: f556df27b6add5a49979cc7a158f6110, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: f556df27b6add5a49979cc7a158f6110, type: 3}
|
||||||
- <SfxName>k__BackingField: RareRewardBox
|
- <SfxName>k__BackingField: OpenNormalRewardBox
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 92cf41edb5694a04eb27847dae1b337f, type: 3}
|
||||||
|
- <SfxName>k__BackingField: OpenRareRewardBox
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 3f98ecaf35492e744bb4dc943e1a39b1, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 3f98ecaf35492e744bb4dc943e1a39b1, type: 3}
|
||||||
- <SfxName>k__BackingField: SelectedButton01
|
- <SfxName>k__BackingField: SelectedButton01
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 80adc41542bc901439938907231717a8, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 80adc41542bc901439938907231717a8, type: 3}
|
||||||
|
- <SfxName>k__BackingField: PlayChain
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 2374925c2e5dd7e47bc214461e4b329d, type: 3}
|
||||||
|
- <SfxName>k__BackingField: Vomit
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: a2bebee4126e87746b5fc1a514ceb4a0, type: 3}
|
||||||
|
- <SfxName>k__BackingField: PlayPump
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: b532d80acad8e6e4e85dbca6096b071e, type: 3}
|
||||||
|
- <SfxName>k__BackingField: AttackWhip
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: d4b4534edc51fb141860a1b599eb6e53, type: 3}
|
||||||
|
- <SfxName>k__BackingField: PutDownCocktail
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 0320fecde5b376f46a0ff9904e17fbc3, type: 3}
|
||||||
|
- <SfxName>k__BackingField: AttackMold
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 603fde43ec110ee42bf61c41ca21a1fb, type: 3}
|
||||||
|
- <SfxName>k__BackingField: BillResult
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: fb03bb1344e16b041af9ac81d4d3c395, type: 3}
|
||||||
|
- <SfxName>k__BackingField: TycoonPlayerWalking
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 4b5f41d537a9a574b9520f50b39fb425, type: 3}
|
||||||
|
- <SfxName>k__BackingField: SelectCard
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 9f82d570d14d65b4a80fe00bae7bc0c0, type: 3}
|
||||||
|
- <SfxName>k__BackingField: CreateCrew
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 557c74c78a72aac41ae6da3f8477169c, type: 3}
|
||||||
|
- <SfxName>k__BackingField: TycoonPlayerAttacked
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 416cb3dc1c8801f46a4a3b14d7665d8b, type: 3}
|
||||||
|
- <SfxName>k__BackingField: RewardBoxInteractionFailed
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 5850aa1a011156841bed2ffc74d93bbd, type: 3}
|
||||||
|
@ -16,7 +16,7 @@ MonoBehaviour:
|
|||||||
- <Key>k__BackingField: LiquidA
|
- <Key>k__BackingField: LiquidA
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidA
|
<Idx>k__BackingField: LiquidA
|
||||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561A"
|
<Name>k__BackingField: "\uC5EC\uC2E0\uC758 \uB208\uBB3C"
|
||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 99999
|
<Amount>k__BackingField: 99999
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3}
|
||||||
@ -24,7 +24,7 @@ MonoBehaviour:
|
|||||||
- <Key>k__BackingField: LiquidB
|
- <Key>k__BackingField: LiquidB
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidB
|
<Idx>k__BackingField: LiquidB
|
||||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561B"
|
<Name>k__BackingField: "\uB808\uBE44\uC544\uD0C4\uC758 \uB3C5\uB2C8"
|
||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3}
|
||||||
@ -32,7 +32,7 @@ MonoBehaviour:
|
|||||||
- <Key>k__BackingField: LiquidC
|
- <Key>k__BackingField: LiquidC
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidC
|
<Idx>k__BackingField: LiquidC
|
||||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561C"
|
<Name>k__BackingField: "\uB9DD\uB839\uC8FC"
|
||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3}
|
||||||
@ -40,7 +40,7 @@ MonoBehaviour:
|
|||||||
- <Key>k__BackingField: LiquidD
|
- <Key>k__BackingField: LiquidD
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidD
|
<Idx>k__BackingField: LiquidD
|
||||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561D"
|
<Name>k__BackingField: "\uC2EC\uD574\uC758 \uC6A9\uACFC\uC8FC"
|
||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3}
|
||||||
@ -48,7 +48,7 @@ MonoBehaviour:
|
|||||||
- <Key>k__BackingField: LiquidE
|
- <Key>k__BackingField: LiquidE
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidE
|
<Idx>k__BackingField: LiquidE
|
||||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561E"
|
<Name>k__BackingField: "\uC800\uC2B9 \uBC8C\uAFC0\uC8FC"
|
||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 2fc24dca6ce6ac94da0187dfce24fa3a, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 2fc24dca6ce6ac94da0187dfce24fa3a, type: 3}
|
||||||
@ -56,7 +56,7 @@ MonoBehaviour:
|
|||||||
- <Key>k__BackingField: Garnish1
|
- <Key>k__BackingField: Garnish1
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: Garnish1
|
<Idx>k__BackingField: Garnish1
|
||||||
<Name>k__BackingField: "\uAC00\uB2C8\uC26C1"
|
<Name>k__BackingField: "\uC5BC\uC74C \uC2AC\uB77C\uC784 \uC870\uAC01"
|
||||||
<Type>k__BackingField: 2
|
<Type>k__BackingField: 2
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3}
|
||||||
@ -64,7 +64,7 @@ MonoBehaviour:
|
|||||||
- <Key>k__BackingField: Garnish2
|
- <Key>k__BackingField: Garnish2
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: Garnish2
|
<Idx>k__BackingField: Garnish2
|
||||||
<Name>k__BackingField: "\uAC00\uB2C8\uC26C2"
|
<Name>k__BackingField: "\uB808\uBAAC \uD53C\uC26C \uC2EC\uC7A5 \uC870\uAC01"
|
||||||
<Type>k__BackingField: 2
|
<Type>k__BackingField: 2
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 1506abfb2ff26fa4aacdeb4b0efc9663, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 1506abfb2ff26fa4aacdeb4b0efc9663, type: 3}
|
||||||
|
@ -24,6 +24,6 @@ namespace BlueWater
|
|||||||
public Sprite Waiting { get; private set; }
|
public Sprite Waiting { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public Sprite Cleaning { get; private set; }
|
public Sprite Dirty { get; private set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,12 +10,15 @@ namespace BlueWater
|
|||||||
public class CardData : IIdx
|
public class CardData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Text"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Text"), BoxGroup("Json 데이터 영역")]
|
||||||
public string ScriptText { get; set; }
|
public string ScriptText { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("최대 값"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("최대 값"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Max { get; set; }
|
public int Max { get; set; }
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,9 +10,11 @@ namespace BlueWater
|
|||||||
public class CardNormalData : IIdx
|
public class CardNormalData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Ratio { get; set; }
|
public int Ratio { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,9 +10,11 @@ namespace BlueWater
|
|||||||
public class CardRareData : IIdx
|
public class CardRareData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Ratio { get; set; }
|
public int Ratio { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,12 +10,15 @@ namespace BlueWater
|
|||||||
public class CardShopData : IIdx
|
public class CardShopData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Ratio { get; set; }
|
public int Ratio { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Price { get; set; }
|
public int Price { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -15,36 +16,47 @@ namespace BlueWater
|
|||||||
public class LevelData : IIdx
|
public class LevelData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("레벨"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("레벨"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("손님 재입장 시간"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("손님 재입장 시간"), BoxGroup("Json 데이터 영역")]
|
||||||
public int CustomerRespawn { get; set; }
|
public int CustomerRespawn { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("기본 골드량"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("기본 골드량"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Gold { get; set; }
|
public int Gold { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("기본 경험치량"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("기본 경험치량"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Exp { get; set; }
|
public int Exp { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("레벨업 요구 경험치량"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("레벨업 요구 경험치량"), BoxGroup("Json 데이터 영역")]
|
||||||
public int RequiredExp { get; set; }
|
public int RequiredExp { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("얌전히 기다리는 시간"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("얌전히 기다리는 시간"), BoxGroup("Json 데이터 영역")]
|
||||||
public int WaitTime { get; set; }
|
public int WaitTime { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("재촉하는 시간 (게이지 활성화)"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("재촉하는 시간 (게이지 활성화)"), BoxGroup("Json 데이터 영역")]
|
||||||
public int HurryTime { get; set; }
|
public int HurryTime { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("먹는 시간"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("먹는 시간"), BoxGroup("Json 데이터 영역")]
|
||||||
public int EatingTime { get; set; }
|
public int EatingTime { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("업그레이드 목록"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("업그레이드 목록"), BoxGroup("Json 데이터 영역")]
|
||||||
public string OpenUpgrade { get; set; }
|
public string OpenUpgrade { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("보물상자 종류"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("보물상자 종류"), BoxGroup("Json 데이터 영역")]
|
||||||
public RewardBoxType RewardBoxType { get; set; }
|
public RewardBoxType RewardBoxType { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("보물상자 가격"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("보물상자 가격"), BoxGroup("Json 데이터 영역")]
|
||||||
public int RewardBoxPrice { get; set; }
|
public int RewardBoxPrice { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Uis;
|
using BlueWater.Uis;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -10,6 +12,7 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private TycoonCard _tycoonCardPrefab;
|
private TycoonCard _tycoonCardPrefab;
|
||||||
|
|
||||||
|
[Title("So")]
|
||||||
[field: SerializeField, Required]
|
[field: SerializeField, Required]
|
||||||
public CardDataSo CardDataSo { get; private set; }
|
public CardDataSo CardDataSo { get; private set; }
|
||||||
|
|
||||||
@ -22,18 +25,25 @@ namespace BlueWater.Tycoons
|
|||||||
[field: SerializeField, Required]
|
[field: SerializeField, Required]
|
||||||
public CardRareDataSo CardRareDataSo { get; private set; }
|
public CardRareDataSo CardRareDataSo { get; private set; }
|
||||||
|
|
||||||
|
[Title("사운드")]
|
||||||
|
[SerializeField]
|
||||||
|
private string _selectCardSfxName = "SelectCard";
|
||||||
|
|
||||||
private TycoonManager _tycoonManager;
|
private TycoonManager _tycoonManager;
|
||||||
private TycoonStatus _tycoonStatus;
|
private TycoonStatus _tycoonStatus;
|
||||||
|
|
||||||
[ShowInInspector]
|
[ShowInInspector]
|
||||||
public Dictionary<string, int> SelectedCard { get; private set; }
|
public Dictionary<string, int> SelectedCard { get; private set; }
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
SelectedCard = new Dictionary<string, int>(CardDataSo.GetDataCount());
|
||||||
|
}
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
_tycoonManager = TycoonManager.Instance;
|
_tycoonManager = TycoonManager.Instance;
|
||||||
_tycoonStatus = _tycoonManager.TycoonStatus;
|
_tycoonStatus = _tycoonManager.TycoonStatus;
|
||||||
|
|
||||||
SelectedCard = new Dictionary<string, int>(CardDataSo.GetDataCount());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TycoonCard CreateTycoonCard(Transform instantiateLocation = null)
|
public TycoonCard CreateTycoonCard(Transform instantiateLocation = null)
|
||||||
@ -55,6 +65,7 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
public void SelectCard(TycoonCard currentTycoonCard)
|
public void SelectCard(TycoonCard currentTycoonCard)
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_selectCardSfxName, ignoreTimeScale:true);
|
||||||
currentTycoonCard.CardCountUp();
|
currentTycoonCard.CardCountUp();
|
||||||
|
|
||||||
switch (currentTycoonCard.CardDataForIdx.Idx) //탐색 후 행동...
|
switch (currentTycoonCard.CardDataForIdx.Idx) //탐색 후 행동...
|
||||||
|
@ -105,6 +105,7 @@ public class TycoonGameOver : PopupUi
|
|||||||
{
|
{
|
||||||
Open();
|
Open();
|
||||||
|
|
||||||
|
AudioManager.Instance.StopBgm();
|
||||||
AudioManager.Instance.PlaySfx(_gameOverSfxName, ignoreTimeScale: true);
|
AudioManager.Instance.PlaySfx(_gameOverSfxName, ignoreTimeScale: true);
|
||||||
|
|
||||||
// 2.0초 동안은 흔들리기만 함
|
// 2.0초 동안은 흔들리기만 함
|
||||||
|
@ -26,6 +26,7 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private RewardBox _rareRewardBoxObject;
|
private RewardBox _rareRewardBoxObject;
|
||||||
|
|
||||||
|
[ShowInInspector]
|
||||||
public Dictionary<string, int> InstanceCocktailDatas { get; private set; } = new();
|
public Dictionary<string, int> InstanceCocktailDatas { get; private set; } = new();
|
||||||
|
|
||||||
private int _playerServingCount;
|
private int _playerServingCount;
|
||||||
|
@ -323,7 +323,7 @@ namespace BlueWater.Tycoons
|
|||||||
PlayerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier;
|
PlayerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier;
|
||||||
PlayerDashCooldownReduction = 0;
|
PlayerDashCooldownReduction = 0;
|
||||||
TipMultiplier = 0f;
|
TipMultiplier = 0f;
|
||||||
EndGoldMultiplier = 0.5f;
|
EndGoldMultiplier = 0f;
|
||||||
_customerHurryTimeIncrease = 0;
|
_customerHurryTimeIncrease = 0;
|
||||||
BarrelAutoIncrease = 0;
|
BarrelAutoIncrease = 0;
|
||||||
ServerTipMultiplier = 0f;
|
ServerTipMultiplier = 0f;
|
||||||
|
@ -9,6 +9,9 @@ using TMPro;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
|
using UnityEngine.Localization;
|
||||||
|
using UnityEngine.Localization.Settings;
|
||||||
|
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
public enum ScreenMode
|
public enum ScreenMode
|
||||||
@ -42,14 +45,16 @@ public class TitleOptions : PopupUi
|
|||||||
private TMP_Dropdown _languageDropdown;
|
private TMP_Dropdown _languageDropdown;
|
||||||
|
|
||||||
private AudioManager _audioManager;
|
private AudioManager _audioManager;
|
||||||
|
|
||||||
private InputAction _interactionEAction;
|
private InputAction _interactionEAction;
|
||||||
private InputAction _closeOptionsAction;
|
private InputAction _closeOptionsAction;
|
||||||
|
private Coroutine _changedLocaleInstance;
|
||||||
|
|
||||||
public Action CloseOptions;
|
public Action CloseOptions;
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||||
|
|
||||||
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
||||||
_closeOptionsAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
|
_closeOptionsAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
|
||||||
|
|
||||||
@ -72,6 +77,8 @@ public class TitleOptions : PopupUi
|
|||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
|
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
||||||
|
|
||||||
if (_interactionEAction != null)
|
if (_interactionEAction != null)
|
||||||
{
|
{
|
||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
@ -93,6 +100,29 @@ public class TitleOptions : PopupUi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void OnChangedLocale(Locale locale)
|
||||||
|
{
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _changedLocaleInstance, ChangeLocaleCoroutine(locale));
|
||||||
|
StartCoroutine(ChangeLocaleCoroutine(locale));
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ChangeLocaleCoroutine(Locale locale)
|
||||||
|
{
|
||||||
|
var loadingOperation = Utils.GetTableAsync();
|
||||||
|
yield return loadingOperation;
|
||||||
|
|
||||||
|
if (loadingOperation.Status == AsyncOperationStatus.Succeeded)
|
||||||
|
{
|
||||||
|
var options = Enum.GetNames(typeof(ScreenMode));
|
||||||
|
var savedScreenMode = ES3.Load(SaveData.ScreenMode, (int)ScreenMode.FullScreen);
|
||||||
|
_screenModeDropdown.captionText.text = Utils.GetLocalizedString(((ScreenMode)savedScreenMode).ToString());
|
||||||
|
for (int i = 0; i < _screenModeDropdown.options.Count; i++)
|
||||||
|
{
|
||||||
|
_screenModeDropdown.options[i].text = Utils.GetLocalizedString(options[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
PopupUiController.RegisterPopup(this);
|
PopupUiController.RegisterPopup(this);
|
||||||
|
@ -3,6 +3,7 @@ using BlueWater.Uis;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.InputSystem;
|
using UnityEngine.InputSystem;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace BlueWater
|
namespace BlueWater
|
||||||
@ -18,8 +19,8 @@ namespace BlueWater
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Button _cancelButton;
|
private Button _cancelButton;
|
||||||
|
|
||||||
[SerializeField]
|
[FormerlySerializedAs("_uiNavigationController")] [SerializeField]
|
||||||
private UiNavigationController _uiNavigationController;
|
private UiEventsController uiEventsController;
|
||||||
|
|
||||||
private InputAction _interactionEAction;
|
private InputAction _interactionEAction;
|
||||||
private InputAction _closeOptionsAction;
|
private InputAction _closeOptionsAction;
|
||||||
@ -66,7 +67,7 @@ namespace BlueWater
|
|||||||
_interactionEAction.performed += OnInteractionE;
|
_interactionEAction.performed += OnInteractionE;
|
||||||
_closeOptionsAction.performed += OnCloseOptions;
|
_closeOptionsAction.performed += OnCloseOptions;
|
||||||
|
|
||||||
_uiNavigationController.Enable(_cancelButton.gameObject);
|
uiEventsController.EnableAutoNavigate(_cancelButton.gameObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
@ -74,7 +75,7 @@ namespace BlueWater
|
|||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
_closeOptionsAction.performed -= OnCloseOptions;
|
_closeOptionsAction.performed -= OnCloseOptions;
|
||||||
|
|
||||||
_uiNavigationController.Disable();
|
uiEventsController.DisableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnInteractionE(InputAction.CallbackContext context)
|
public void OnInteractionE(InputAction.CallbackContext context)
|
||||||
|
@ -54,8 +54,8 @@ namespace BlueWater.Titles
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Image _ink;
|
private Image _ink;
|
||||||
|
|
||||||
[SerializeField]
|
[FormerlySerializedAs("_uiNavigationController")] [SerializeField]
|
||||||
private UiNavigationController _uiNavigationController;
|
private UiEventsController uiEventsController;
|
||||||
|
|
||||||
public Material inkMaterialInstance { get; private set; }
|
public Material inkMaterialInstance { get; private set; }
|
||||||
|
|
||||||
@ -111,9 +111,18 @@ namespace BlueWater.Titles
|
|||||||
_lobbyButton?.onClick.AddListener(() => SceneController.Instance?.LoadScene(SceneName.TycoonTile));
|
_lobbyButton?.onClick.AddListener(() => SceneController.Instance?.LoadScene(SceneName.TycoonTile));
|
||||||
}
|
}
|
||||||
|
|
||||||
_interactionEAction = null;
|
if (_interactionEAction != null)
|
||||||
_openAction = null;
|
{
|
||||||
_closeAction = null;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
|
}
|
||||||
|
if (_openAction != null)
|
||||||
|
{
|
||||||
|
_openAction.performed -= OnOpen;
|
||||||
|
}
|
||||||
|
if (_closeAction != null)
|
||||||
|
{
|
||||||
|
_closeAction.performed -= OnClose;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnOpen(InputAction.CallbackContext context)
|
public void OnOpen(InputAction.CallbackContext context)
|
||||||
@ -166,11 +175,11 @@ namespace BlueWater.Titles
|
|||||||
{
|
{
|
||||||
if (_isTitleScene)
|
if (_isTitleScene)
|
||||||
{
|
{
|
||||||
_uiNavigationController.Enable(_startGameButton.gameObject);
|
uiEventsController.EnableAutoNavigate(_startGameButton.gameObject);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_uiNavigationController.Enable(_resumeGameButton.gameObject);
|
uiEventsController.EnableAutoNavigate(_resumeGameButton.gameObject);
|
||||||
_closeAction.performed += OnClose;
|
_closeAction.performed += OnClose;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,7 +198,7 @@ namespace BlueWater.Titles
|
|||||||
}
|
}
|
||||||
|
|
||||||
_interactionEAction.performed -= OnInteractionE;
|
_interactionEAction.performed -= OnInteractionE;
|
||||||
_uiNavigationController.Disable();
|
uiEventsController.DisableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetVersion()
|
private string GetVersion()
|
||||||
|
@ -92,7 +92,6 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
private void SetEmpty()
|
private void SetEmpty()
|
||||||
{
|
{
|
||||||
SetItemSprite(null);
|
|
||||||
OrderCocktailData = null;
|
OrderCocktailData = null;
|
||||||
_fillTween?.Kill();
|
_fillTween?.Kill();
|
||||||
}
|
}
|
||||||
@ -131,6 +130,16 @@ namespace BlueWater.Uis
|
|||||||
SetTween(waitTime, hurryTime, isReverse);
|
SetTween(waitTime, hurryTime, isReverse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OrderItem(float waitTime, float hurryTime, bool isReverse = false)
|
||||||
|
{
|
||||||
|
_isOrdered = true;
|
||||||
|
_isWaitTimeOver = false;
|
||||||
|
_isItemReceived = false;
|
||||||
|
ShowUi();
|
||||||
|
|
||||||
|
SetTween(waitTime, hurryTime, isReverse);
|
||||||
|
}
|
||||||
|
|
||||||
public void SetTween(float waitTime, float hurryTime, bool isReverse = false)
|
public void SetTween(float waitTime, float hurryTime, bool isReverse = false)
|
||||||
{
|
{
|
||||||
float startValue = isReverse ? 1f : 0f;
|
float startValue = isReverse ? 1f : 0f;
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Npcs.Customers;
|
using BlueWater.Npcs.Customers;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
@ -50,6 +51,9 @@ namespace BlueWater
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Color _endColor = Color.red;
|
private Color _endColor = Color.red;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string resultSfxName = "BillResult";
|
||||||
|
|
||||||
public BillInfo CurrentBillInfo { get; private set; }
|
public BillInfo CurrentBillInfo { get; private set; }
|
||||||
|
|
||||||
private Tween _sliderTween;
|
private Tween _sliderTween;
|
||||||
@ -192,6 +196,7 @@ namespace BlueWater
|
|||||||
Debug.LogError("애니메이션 오류");
|
Debug.LogError("애니메이션 오류");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AudioManager.Instance.PlaySfx(resultSfxName);
|
||||||
_stampImageObject.SetActive(true);
|
_stampImageObject.SetActive(true);
|
||||||
_sliderTween?.Kill();
|
_sliderTween?.Kill();
|
||||||
var isTrigger = false;
|
var isTrigger = false;
|
||||||
|
@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Npcs.Customers;
|
using BlueWater.Npcs.Customers;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
@ -19,6 +20,9 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private SkeletonGraphic _chain;
|
private SkeletonGraphic _chain;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string playChainSfxName = "PlayChain";
|
||||||
|
|
||||||
[Title("계산서")]
|
[Title("계산서")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Vector3 _spawnPosition;
|
private Vector3 _spawnPosition;
|
||||||
@ -100,6 +104,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
private void PlayChainAnimation()
|
private void PlayChainAnimation()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(playChainSfxName);
|
||||||
_chain.AnimationState.SetAnimation(0, Move, true);
|
_chain.AnimationState.SetAnimation(0, Move, true);
|
||||||
_isMovedChain = true;
|
_isMovedChain = true;
|
||||||
}
|
}
|
||||||
@ -132,6 +137,7 @@ namespace BlueWater.Uis
|
|||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AudioManager.Instance.StopSfx(playChainSfxName);
|
||||||
_chain.AnimationState.ClearTrack(0);
|
_chain.AnimationState.ClearTrack(0);
|
||||||
_isMovedChain = false;
|
_isMovedChain = false;
|
||||||
_isActivating = false;
|
_isActivating = false;
|
||||||
|
55
Assets/02.Scripts/Ui/Tycoon/CocktailRecipeButton.cs
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using BlueWater.Items;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace BlueWater.Uis
|
||||||
|
{
|
||||||
|
public class CocktailRecipeButton : MonoBehaviour, ISelectHandler
|
||||||
|
{
|
||||||
|
[field: SerializeField]
|
||||||
|
public Button Button { get; private set; }
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Image _cocktailImage;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Material _grayScaleMaterial;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _cocktailIdx;
|
||||||
|
|
||||||
|
public CocktailData CocktailData { get; private set; }
|
||||||
|
|
||||||
|
private Action<CocktailRecipeButton> _onSelectedAction;
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
_onSelectedAction = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize()
|
||||||
|
{
|
||||||
|
CocktailData = ItemManager.Instance.CocktailDataSo.GetDataByIdx(_cocktailIdx);
|
||||||
|
_cocktailImage.sprite = CocktailData.Sprite;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnSelect(BaseEventData eventData)
|
||||||
|
{
|
||||||
|
_onSelectedAction?.Invoke(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CheckUnlock(HashSet<string> unlockLiquidIdxs)
|
||||||
|
{
|
||||||
|
_cocktailImage.material = CocktailData.ValidIngredients.All(element => unlockLiquidIdxs.Contains(element.Idx)) ? null : _grayScaleMaterial;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddSelectedAction(Action<CocktailRecipeButton> selectedAction)
|
||||||
|
{
|
||||||
|
_onSelectedAction += selectedAction;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/CocktailRecipeButton.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 17b171183981ed942ad039a9dbedbfab
|
94
Assets/02.Scripts/Ui/Tycoon/CraftingIngredient.cs
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using BlueWater.Items;
|
||||||
|
using BlueWater.Utility;
|
||||||
|
using TMPro;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Localization;
|
||||||
|
using UnityEngine.Localization.Settings;
|
||||||
|
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
|
namespace BlueWater.Uis
|
||||||
|
{
|
||||||
|
public class CraftingIngredient : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
private GameObject _connectionLine;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Image _liquidImage;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Image _liquidTypeImage;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TMP_Text _liquidText;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private TMP_Text _ratioText;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Sprite _liquidTypeSprite;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Sprite _garnishTypeSprite;
|
||||||
|
|
||||||
|
private Coroutine _changedLocaleInstance;
|
||||||
|
private LiquidData _liquidData;
|
||||||
|
|
||||||
|
private void Start()
|
||||||
|
{
|
||||||
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnDestroy()
|
||||||
|
{
|
||||||
|
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnChangedLocale(Locale locale)
|
||||||
|
{
|
||||||
|
if (!gameObject.activeInHierarchy) return;
|
||||||
|
|
||||||
|
Utils.StartUniqueCoroutine(this, ref _changedLocaleInstance, ChangeLocaleCoroutine(locale));
|
||||||
|
StartCoroutine(ChangeLocaleCoroutine(locale));
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator ChangeLocaleCoroutine(Locale locale)
|
||||||
|
{
|
||||||
|
var loadingOperation = Utils.GetTableAsync();
|
||||||
|
yield return loadingOperation;
|
||||||
|
|
||||||
|
if (loadingOperation.Status == AsyncOperationStatus.Succeeded)
|
||||||
|
{
|
||||||
|
_liquidText.text = Utils.GetLocalizedString(_liquidData.Idx);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Initialize(CocktailIngredient cocktailIngredient, int index)
|
||||||
|
{
|
||||||
|
_connectionLine.SetActive(index != 0);
|
||||||
|
|
||||||
|
_liquidData = ItemManager.Instance.LiquidDataSo.GetDataByIdx(cocktailIngredient.Idx);
|
||||||
|
_liquidImage.sprite = _liquidData.Sprite;
|
||||||
|
|
||||||
|
Sprite liquidTypeSprite = null;
|
||||||
|
if (_liquidData.Type == LiquidType.Liquid)
|
||||||
|
{
|
||||||
|
liquidTypeSprite = _liquidTypeSprite;
|
||||||
|
}
|
||||||
|
else if (_liquidData.Type == LiquidType.Garnish)
|
||||||
|
{
|
||||||
|
liquidTypeSprite = _garnishTypeSprite;
|
||||||
|
}
|
||||||
|
|
||||||
|
_liquidTypeImage.sprite = liquidTypeSprite;
|
||||||
|
_liquidText.text = Utils.GetLocalizedString(_liquidData.Idx);
|
||||||
|
_ratioText.text = $"{cocktailIngredient.Ratio}%";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Show() => gameObject.SetActive(true);
|
||||||
|
public void Hide() => gameObject.SetActive(false);
|
||||||
|
}
|
||||||
|
}
|
2
Assets/02.Scripts/Ui/Tycoon/CraftingIngredient.cs.meta
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a83a8a804c0bb8e40a23376930b210fa
|
@ -1,10 +1,11 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
using BlueWater.Audios;
|
using BlueWater.Audios;
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Tycoons;
|
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
|
using Sirenix.OdinInspector;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
@ -12,6 +13,7 @@ using UnityEngine.InputSystem;
|
|||||||
using UnityEngine.Localization;
|
using UnityEngine.Localization;
|
||||||
using UnityEngine.Localization.Settings;
|
using UnityEngine.Localization.Settings;
|
||||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||||
|
using UnityEngine.Serialization;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
@ -24,45 +26,68 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private TMP_Text _openManualKeyText;
|
private TMP_Text _openManualKeyText;
|
||||||
|
|
||||||
|
[Title("선택된 칵테일")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Transform _cocktailButtons;
|
private TMP_Text _selectedCocktailName;
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
private Image cocktailImage;
|
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
private TextMeshProUGUI cocktailName;
|
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
private ManualCocktailButton manualCocktailsPrefabs;
|
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
private ManualIngredientSlot slot01;
|
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
private ManualIngredientSlot slot02;
|
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
private ManualIngredientSlot slot03;
|
|
||||||
|
|
||||||
[field: SerializeField]
|
|
||||||
private TextMeshProUGUI ratioRange;
|
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _manualSfxName = "ManualBook";
|
private Image _selectedCocktailImage;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private UiNavigationController _uiNavigationController;
|
private TMP_Text _ratioRange;
|
||||||
|
|
||||||
private List<ManualCocktailButton> _button;
|
[SerializeField]
|
||||||
|
private TMP_Text _selectedCocktailDescription;
|
||||||
|
|
||||||
|
[Title("제작 방법")]
|
||||||
|
[SerializeField]
|
||||||
|
private Transform _craftingContents;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private List<CraftingIngredient> _craftingIngredients = new(3);
|
||||||
|
|
||||||
|
[Title("사운드")]
|
||||||
|
[SerializeField]
|
||||||
|
private string _openManualSfxName = "OpenManualBook";
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _closeManualSfxName = "CloseManualBook";
|
||||||
|
|
||||||
|
[Title("참조")]
|
||||||
|
[SerializeField]
|
||||||
|
private UiEventsController uiEventsController;
|
||||||
|
|
||||||
|
[Title("실시간 데이터")]
|
||||||
|
[SerializeField]
|
||||||
|
private List<CocktailRecipeButton> _cocktailRecipeButtons;
|
||||||
|
|
||||||
|
[ShowInInspector]
|
||||||
|
private HashSet<string> _unlockLiquidIdxs = new(7);
|
||||||
|
|
||||||
|
private CocktailRecipeButton _selectedCocktailRecipeButton;
|
||||||
private Coroutine _changedLocaleInstance;
|
private Coroutine _changedLocaleInstance;
|
||||||
private ManualCocktailButton _selectedManualCocktailButton;
|
|
||||||
private InputAction _openManualBookAction;
|
private InputAction _openManualBookAction;
|
||||||
private InputAction _pressQAction;
|
private InputAction _pressQAction;
|
||||||
private InputAction _cancelAction;
|
private InputAction _cancelAction;
|
||||||
|
|
||||||
private string _openManualKeyBinding;
|
private string _openManualKeyBinding;
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
_cocktailRecipeButtons = transform.GetComponentsInChildren<CocktailRecipeButton>(true).ToList();
|
||||||
|
|
||||||
|
foreach (var element in _cocktailRecipeButtons)
|
||||||
|
{
|
||||||
|
element.Initialize();
|
||||||
|
element.AddSelectedAction(SelectItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
_craftingIngredients = _craftingContents.GetComponentsInChildren<CraftingIngredient>(true).ToList();
|
||||||
|
|
||||||
|
EventManager.OnLevelUp += UpdateManualBook;
|
||||||
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||||
|
}
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
_openManualBookAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.Tycoon, TycoonActions.OpenManualBook);
|
_openManualBookAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.Tycoon, TycoonActions.OpenManualBook);
|
||||||
@ -74,86 +99,8 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
_openManualBookAction.performed += OnOpen;
|
_openManualBookAction.performed += OnOpen;
|
||||||
|
|
||||||
var allCocktails = ItemManager.Instance.CocktailDataSo.GetData();
|
uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
|
||||||
_button = new List<ManualCocktailButton>(allCocktails.Count);
|
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
|
||||||
foreach (var element in allCocktails.Values)
|
|
||||||
{
|
|
||||||
if (element.Idx.Equals("Cocktail000")) continue; //쓰레기는 메뉴얼에 표시하지 않기
|
|
||||||
|
|
||||||
var cocktail = Instantiate(manualCocktailsPrefabs, _cocktailButtons);
|
|
||||||
cocktail.AddSelectedAction(SelectedItem);
|
|
||||||
cocktail.name = element.Idx;
|
|
||||||
cocktail.SetImage(element.Sprite);
|
|
||||||
_button.Add(cocktail);
|
|
||||||
|
|
||||||
foreach (var element2 in element.ValidIngredients) //들어가는 리큐르, 가니쉬 종류
|
|
||||||
{
|
|
||||||
if (element2.Idx.Equals("LiquidA"))
|
|
||||||
{
|
|
||||||
var scale = cocktail.transform.localScale;
|
|
||||||
scale.z += 1;
|
|
||||||
cocktail.transform.localScale = scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("LiquidB"))
|
|
||||||
{
|
|
||||||
var scale = cocktail.transform.localScale;
|
|
||||||
scale.z += 2;
|
|
||||||
cocktail.transform.localScale = scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("LiquidC"))
|
|
||||||
{
|
|
||||||
var scale = cocktail.transform.localScale;
|
|
||||||
scale.z += 4;
|
|
||||||
cocktail.transform.localScale = scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("LiquidD"))
|
|
||||||
{
|
|
||||||
var scale = cocktail.transform.localScale;
|
|
||||||
scale.z += 8;
|
|
||||||
cocktail.transform.localScale = scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("LiquidE"))
|
|
||||||
{
|
|
||||||
var scale = cocktail.transform.localScale;
|
|
||||||
scale.z += 16;
|
|
||||||
cocktail.transform.localScale = scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("Garnish1"))
|
|
||||||
{
|
|
||||||
var scale = cocktail.transform.localScale;
|
|
||||||
scale.z += 32;
|
|
||||||
cocktail.transform.localScale = scale;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("Garnish2"))
|
|
||||||
{
|
|
||||||
var scale = cocktail.transform.localScale;
|
|
||||||
scale.z += 64;
|
|
||||||
cocktail.transform.localScale = scale;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
_button = _button.OrderBy(c => c.transform.localScale.z).ToList();
|
|
||||||
SetNavigation();
|
|
||||||
_uiNavigationController.SetSelectObject(_button[0].gameObject);
|
|
||||||
EventSystem.current.SetSelectedGameObject(_uiNavigationController.SelectObject);
|
|
||||||
|
|
||||||
for (int i = 0; i < _button.Count; i++)
|
|
||||||
{
|
|
||||||
_button[i].transform.SetSiblingIndex(i);
|
|
||||||
_button[i].transform.localScale = new Vector3(1.0f, 1.0f, 1.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
Update_Cocktails();
|
|
||||||
|
|
||||||
EventManager.OnLevelUp += UpdateManualBook;
|
|
||||||
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
@ -178,7 +125,14 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
if (loadingOperation.Status == AsyncOperationStatus.Succeeded)
|
if (loadingOperation.Status == AsyncOperationStatus.Succeeded)
|
||||||
{
|
{
|
||||||
SelectedItem(_selectedManualCocktailButton);
|
if (_selectedCocktailRecipeButton != null)
|
||||||
|
{
|
||||||
|
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
||||||
|
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}%";
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
|
||||||
|
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -196,8 +150,8 @@ namespace BlueWater.Uis
|
|||||||
PopupUiController.RegisterPopup(this);
|
PopupUiController.RegisterPopup(this);
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
IsOpened = true;
|
IsOpened = true;
|
||||||
AudioManager.Instance.PlaySfx(_manualSfxName, ignoreTimeScale: true);
|
AudioManager.Instance.PlaySfx(_openManualSfxName, ignoreTimeScale: true);
|
||||||
EventSystem.current.SetSelectedGameObject(_uiNavigationController.SelectObject);
|
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnClose(InputAction.CallbackContext context)
|
public void OnClose(InputAction.CallbackContext context)
|
||||||
@ -207,7 +161,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
{
|
{
|
||||||
AudioManager.Instance.PlaySfx(_manualSfxName, ignoreTimeScale: true);
|
AudioManager.Instance.PlaySfx(_closeManualSfxName, ignoreTimeScale: true);
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
PopupUiController.UnregisterPopup(this);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||||
@ -219,12 +173,12 @@ namespace BlueWater.Uis
|
|||||||
{
|
{
|
||||||
_pressQAction.performed += OnClose;
|
_pressQAction.performed += OnClose;
|
||||||
_cancelAction.performed += OnClose;
|
_cancelAction.performed += OnClose;
|
||||||
_uiNavigationController.Enable();
|
uiEventsController.EnableAutoNavigate();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void DisableInput()
|
public override void DisableInput()
|
||||||
{
|
{
|
||||||
_uiNavigationController.Disable();
|
uiEventsController.DisableAutoNavigate();
|
||||||
_pressQAction.performed -= OnClose;
|
_pressQAction.performed -= OnClose;
|
||||||
_cancelAction.performed -= OnClose;
|
_cancelAction.performed -= OnClose;
|
||||||
}
|
}
|
||||||
@ -234,232 +188,106 @@ namespace BlueWater.Uis
|
|||||||
_openManualKeyText.text = bindingKey;
|
_openManualKeyText.text = bindingKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetNavigation()
|
// private void SetNavigation()
|
||||||
{
|
// {
|
||||||
int maxRow = 4;
|
// int maxRow = 4;
|
||||||
|
//
|
||||||
|
// for (int i = 0; i < _button.Count; i++)
|
||||||
|
// {
|
||||||
|
// Navigation navigation = _button[i].Button.navigation;
|
||||||
|
// navigation.mode = Navigation.Mode.Explicit;
|
||||||
|
//
|
||||||
|
// // 좌측 네비게이션 설정
|
||||||
|
// if (i % maxRow != 0)
|
||||||
|
// {
|
||||||
|
// navigation.selectOnLeft = _button[i - 1].Button;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 우측 네비게이션 설정
|
||||||
|
// if ((i + 1) % maxRow != 0 && (i + 1) < _button.Count)
|
||||||
|
// {
|
||||||
|
// navigation.selectOnRight = _button[i + 1].Button;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 위쪽 네비게이션 설정
|
||||||
|
// if (i - maxRow >= 0)
|
||||||
|
// {
|
||||||
|
// navigation.selectOnUp = _button[i - maxRow].Button;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 아래쪽 네비게이션 설정
|
||||||
|
// if (i + maxRow < _button.Count)
|
||||||
|
// {
|
||||||
|
// navigation.selectOnDown = _button[i + maxRow].Button;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // 설정된 네비게이션을 버튼에 적용
|
||||||
|
// _button[i].Button.navigation = navigation;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
for (int i = 0; i < _button.Count; i++)
|
public void SelectItem(CocktailRecipeButton cocktailRecipeButton)
|
||||||
{
|
{
|
||||||
Navigation navigation = _button[i].Button.navigation;
|
_selectedCocktailRecipeButton = cocktailRecipeButton;
|
||||||
navigation.mode = Navigation.Mode.Explicit;
|
uiEventsController.SetSelectObject(_selectedCocktailRecipeButton.gameObject);
|
||||||
|
|
||||||
// 좌측 네비게이션 설정
|
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
||||||
if (i % maxRow != 0)
|
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite;
|
||||||
{
|
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}%";
|
||||||
navigation.selectOnLeft = _button[i - 1].Button;
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
}
|
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
|
||||||
|
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
|
||||||
|
|
||||||
// 우측 네비게이션 설정
|
List<CocktailIngredient> validIngredients = _selectedCocktailRecipeButton.CocktailData.ValidIngredients;
|
||||||
if ((i + 1) % maxRow != 0 && (i + 1) < _button.Count)
|
|
||||||
{
|
|
||||||
navigation.selectOnRight = _button[i + 1].Button;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 위쪽 네비게이션 설정
|
for (int i = 0; i < _craftingIngredients.Count; i++)
|
||||||
if (i - maxRow >= 0)
|
|
||||||
{
|
{
|
||||||
navigation.selectOnUp = _button[i - maxRow].Button;
|
if (i >= validIngredients.Count)
|
||||||
}
|
|
||||||
|
|
||||||
// 아래쪽 네비게이션 설정
|
|
||||||
if (i + maxRow < _button.Count)
|
|
||||||
{
|
{
|
||||||
navigation.selectOnDown = _button[i + maxRow].Button;
|
_craftingIngredients[i].Hide();
|
||||||
}
|
|
||||||
|
|
||||||
// 설정된 네비게이션을 버튼에 적용
|
|
||||||
_button[i].Button.navigation = navigation;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Update_Cocktails() //해금된 칵테일의 활성 표시 유무
|
|
||||||
{
|
|
||||||
int playerLv = TycoonManager.Instance.TycoonStatus.CurrentLevel;
|
|
||||||
|
|
||||||
bool check = false;
|
|
||||||
|
|
||||||
var cocktailDatas = ItemManager.Instance.CocktailDataSo.GetData();
|
|
||||||
|
|
||||||
foreach (var element in _button)
|
|
||||||
{
|
|
||||||
check = false;
|
|
||||||
|
|
||||||
var cocktailIngredients = cocktailDatas[element.name].ValidIngredients;
|
|
||||||
|
|
||||||
foreach (var element2 in cocktailIngredients)
|
|
||||||
{
|
|
||||||
if (element2.Idx.Equals("LiquidA"))
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
;
|
|
||||||
if (element2.Idx.Equals("LiquidB") && playerLv < 5)
|
|
||||||
{
|
|
||||||
check = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("LiquidC") && playerLv < 10)
|
|
||||||
{
|
|
||||||
check = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("LiquidD") && playerLv < 15)
|
|
||||||
{
|
|
||||||
check = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("LiquidE") && playerLv < 20)
|
|
||||||
{
|
|
||||||
check = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("Garnish1") && playerLv < 25)
|
|
||||||
{
|
|
||||||
check = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (element2.Idx.Equals("Garnish2") && playerLv < 30)
|
|
||||||
{
|
|
||||||
check = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
//해금될때 어느 리퀴르랑 가니쉬가 해금되었는지 확인 불가능 하기 때문에 일단 수기로 작성...
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!check)
|
|
||||||
{
|
|
||||||
element.transform.Find("Image").GetComponent<Image>().material = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SelectedItem(ManualCocktailButton clickedButton)
|
|
||||||
{
|
|
||||||
_selectedManualCocktailButton = clickedButton;
|
|
||||||
_uiNavigationController.SetSelectObject(_selectedManualCocktailButton.gameObject);
|
|
||||||
//if (clickedButton.GetComponent<Image>().material == null) //활성화 된 음료만 클릭이 되도록 한다.
|
|
||||||
if (true) // 테스트용
|
|
||||||
{
|
|
||||||
bool checkSlot1 = false;
|
|
||||||
bool checkSlot2 = false;
|
|
||||||
bool checkSlot3 = false;
|
|
||||||
|
|
||||||
var cocktailDatas = ItemManager.Instance.CocktailDataSo.GetData();
|
|
||||||
var liquidDatas = ItemManager.Instance.LiquidDataSo.GetData();
|
|
||||||
|
|
||||||
cocktailImage.sprite = clickedButton.Image.sprite;
|
|
||||||
cocktailName.text = Utils.GetLocalizedString(clickedButton.name);
|
|
||||||
int ratioRangePer = cocktailDatas[clickedButton.name].RatioRange;
|
|
||||||
ratioRange.text = ratioRangePer == 0
|
|
||||||
? ""
|
|
||||||
: $"{Utils.GetLocalizedString("MarginOfError")} : {ratioRangePer}%";
|
|
||||||
|
|
||||||
void Setslot(string ingredientName, int targetSlotNum = 0)
|
|
||||||
{
|
|
||||||
int targetSlotNumF = 0;
|
|
||||||
|
|
||||||
if (targetSlotNum != 0)
|
|
||||||
{
|
|
||||||
if (targetSlotNum == 1)
|
|
||||||
{
|
|
||||||
targetSlotNumF = 1;
|
|
||||||
checkSlot1 = true;
|
|
||||||
}
|
|
||||||
else if (targetSlotNum == 2)
|
|
||||||
{
|
|
||||||
targetSlotNumF = 2;
|
|
||||||
checkSlot2 = true;
|
|
||||||
}
|
|
||||||
else if (targetSlotNum == 3)
|
|
||||||
{
|
|
||||||
targetSlotNumF = 3;
|
|
||||||
checkSlot3 = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (!checkSlot1)
|
|
||||||
{
|
|
||||||
targetSlotNumF = 1;
|
|
||||||
checkSlot1 = true;
|
|
||||||
}
|
|
||||||
else if (!checkSlot2)
|
|
||||||
{
|
|
||||||
targetSlotNumF = 2;
|
|
||||||
checkSlot2 = true;
|
|
||||||
}
|
|
||||||
else if (!checkSlot3)
|
|
||||||
{
|
|
||||||
targetSlotNumF = 3;
|
|
||||||
checkSlot3 = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
ManualIngredientSlot targetSlotF = null;
|
|
||||||
if (targetSlotNumF == 1) targetSlotF = slot01;
|
|
||||||
else if (targetSlotNumF == 2) targetSlotF = slot02;
|
|
||||||
else if (targetSlotNumF == 3) targetSlotF = slot03;
|
|
||||||
|
|
||||||
if (targetSlotF == null) return;
|
|
||||||
|
|
||||||
targetSlotF.SetImage(liquidDatas[ingredientName].Sprite);
|
|
||||||
targetSlotF.SetType(Utils.GetLocalizedString(ingredientName));
|
|
||||||
targetSlotF.SetPercent($"{cocktailDatas[clickedButton.name].GetIngredientRatio(ingredientName)}%");
|
|
||||||
}
|
|
||||||
|
|
||||||
//가니쉬 배치를 처음으로... 일단 대기...
|
|
||||||
/*
|
|
||||||
*
|
|
||||||
if (cocktailDatas[clickedButton.name].SearchIngredient("Garnish1") != 0)
|
|
||||||
{
|
|
||||||
Setslot("Garnish1",3);
|
|
||||||
}
|
|
||||||
else if (cocktailDatas[clickedButton.name].SearchIngredient("Garnish2") != 0)
|
|
||||||
{
|
|
||||||
Setslot("Garnish2",3);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
foreach (var element in liquidDatas)
|
|
||||||
{
|
|
||||||
if (cocktailDatas[clickedButton.name].SearchIngredient(element.Value.Idx) != 0)
|
|
||||||
Setslot(element.Value.Idx);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!checkSlot1)
|
|
||||||
{
|
|
||||||
slot01.gameObject.SetActive(false);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
slot01.gameObject.SetActive(true);
|
_craftingIngredients[i].Initialize(validIngredients[i], i);
|
||||||
}
|
_craftingIngredients[i].Show();
|
||||||
|
|
||||||
if (!checkSlot2)
|
|
||||||
{
|
|
||||||
slot02.gameObject.SetActive(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
slot02.gameObject.SetActive(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!checkSlot3)
|
|
||||||
{
|
|
||||||
slot03.gameObject.SetActive(false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
slot03.gameObject.SetActive(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateManualBook(LevelData levelData)
|
private void UpdateManualBook(LevelData levelData)
|
||||||
{
|
{
|
||||||
Update_Cocktails();
|
if (string.IsNullOrEmpty(levelData.OpenUpgrade)) return;
|
||||||
|
|
||||||
|
int currentLevel = int.Parse(levelData.Idx);
|
||||||
|
switch (currentLevel)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
_unlockLiquidIdxs.Add("LiquidA");
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
_unlockLiquidIdxs.Add("LiquidB");
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
_unlockLiquidIdxs.Add("LiquidC");
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
_unlockLiquidIdxs.Add("LiquidD");
|
||||||
|
break;
|
||||||
|
case 20:
|
||||||
|
_unlockLiquidIdxs.Add("LiquidE");
|
||||||
|
break;
|
||||||
|
case 25:
|
||||||
|
_unlockLiquidIdxs.Add("Garnish1");
|
||||||
|
break;
|
||||||
|
case 30:
|
||||||
|
_unlockLiquidIdxs.Add("Garnish2");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var element in _cocktailRecipeButtons)
|
||||||
|
{
|
||||||
|
element.CheckUnlock(_unlockLiquidIdxs);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -25,7 +25,7 @@ namespace BlueWater.Uis
|
|||||||
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
|
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _openSfxName = "RareRewardBox";
|
private string _openSfxName = "OpenRareRewardBox";
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Button allOpenCardButton;
|
private Button allOpenCardButton;
|
||||||
@ -61,8 +61,8 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
|
||||||
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
||||||
|
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||||
PopupUiController.RegisterPopup(this);
|
PopupUiController.RegisterPopup(this);
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
@ -70,7 +70,6 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
allOpenCardButton.gameObject.SetActive(true);
|
allOpenCardButton.gameObject.SetActive(true);
|
||||||
closeButton.gameObject.SetActive(false);
|
closeButton.gameObject.SetActive(false);
|
||||||
EventSystem.current.SetSelectedGameObject(allOpenCardButton.gameObject);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override void Close()
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater.Npcs.Customers;
|
using BlueWater.Audios;
|
||||||
using BlueWater.Tycoons;
|
using BlueWater.Tycoons;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -189,6 +189,9 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private float _totalGoldDuration = 1f;
|
private float _totalGoldDuration = 1f;
|
||||||
|
|
||||||
|
[Title("사운드")]
|
||||||
|
private string _bgmName = "TycoonResult";
|
||||||
|
|
||||||
private Coroutine _showResultInstance;
|
private Coroutine _showResultInstance;
|
||||||
private InputAction _pressAnyKeyAction;
|
private InputAction _pressAnyKeyAction;
|
||||||
|
|
||||||
@ -252,6 +255,7 @@ namespace BlueWater.Uis
|
|||||||
[Button("결과 연출 테스트")]
|
[Button("결과 연출 테스트")]
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlayBgm(_bgmName);
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||||
PopupUiController.RegisterPopup(this);
|
PopupUiController.RegisterPopup(this);
|
||||||
@ -417,7 +421,12 @@ namespace BlueWater.Uis
|
|||||||
_tipGainedText.text = _tipGained.ToString("N0");
|
_tipGainedText.text = _tipGained.ToString("N0");
|
||||||
_goldSpentText.text = _goldSpent.ToString("N0");
|
_goldSpentText.text = _goldSpent.ToString("N0");
|
||||||
_totalGoldText.text = $"{Utils.GetLocalizedString("TotalGold")} : {ES3.Load(SaveData.EndGold, 0):N0}";
|
_totalGoldText.text = $"{Utils.GetLocalizedString("TotalGold")} : {ES3.Load(SaveData.EndGold, 0):N0}";
|
||||||
_minusPercentText.text = $"- {Mathf.RoundToInt((1f - TycoonManager.Instance.TycoonStatus.EndGoldMultiplier) * 100)}%";
|
|
||||||
|
float endGoldMultiplier = -0.5f + TycoonManager.Instance.TycoonStatus.EndGoldMultiplier;
|
||||||
|
int percent = Mathf.RoundToInt(endGoldMultiplier * 100);
|
||||||
|
char sign = percent >= 0 ? '+' : '-';
|
||||||
|
_minusPercentText.color = percent >= 0 ? Color.blue : Color.red;
|
||||||
|
_minusPercentText.text = $"{sign} {percent}%";
|
||||||
}
|
}
|
||||||
|
|
||||||
[Button("결과 즉시 테스트")]
|
[Button("결과 즉시 테스트")]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Tycoons;
|
using BlueWater.Tycoons;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -16,6 +17,9 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Transform _contents;
|
private Transform _contents;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _openSfxName = "OpenNormalRewardBox";
|
||||||
|
|
||||||
private List<TycoonCard> _tycoonCards = new(3);
|
private List<TycoonCard> _tycoonCards = new(3);
|
||||||
|
|
||||||
private LevelData _currentLevelData;
|
private LevelData _currentLevelData;
|
||||||
@ -39,6 +43,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||||
PopupUiController.RegisterPopup(this);
|
PopupUiController.RegisterPopup(this);
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
using System.Threading.Tasks;
|
||||||
using BlueWater.Audios;
|
using BlueWater.Audios;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
|
@ -8,6 +8,8 @@ using DG.Tweening;
|
|||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
{
|
{
|
||||||
@ -28,6 +30,9 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Transform _contents;
|
private Transform _contents;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private Button _purchaseCompletedButton;
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Vector3 _cardLocalScale = new(0.65f, 0.65f, 1f);
|
private Vector3 _cardLocalScale = new(0.65f, 0.65f, 1f);
|
||||||
|
|
||||||
@ -99,6 +104,11 @@ namespace BlueWater.Uis
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
while (!PlayerInputKeyManager.Instance.IsInitialized)
|
||||||
|
{
|
||||||
|
await Task.Delay(100);
|
||||||
|
}
|
||||||
|
|
||||||
EventManager.InvokeTycoonGameStarted();
|
EventManager.InvokeTycoonGameStarted();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -117,13 +127,19 @@ namespace BlueWater.Uis
|
|||||||
IsOpened = true;
|
IsOpened = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close()
|
public override async void Close()
|
||||||
{
|
{
|
||||||
_panel.SetActive(false);
|
_panel.SetActive(false);
|
||||||
PopupUiController.UnregisterPopup(this);
|
PopupUiController.UnregisterPopup(this);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||||
IsOpened = false;
|
IsOpened = false;
|
||||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
VisualFeedbackManager.Instance.ResetTimeScale();
|
||||||
|
|
||||||
|
while (!PlayerInputKeyManager.Instance.IsInitialized)
|
||||||
|
{
|
||||||
|
await Task.Delay(100);
|
||||||
|
}
|
||||||
|
|
||||||
EventManager.InvokeTycoonGameStarted();
|
EventManager.InvokeTycoonGameStarted();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
@ -19,6 +21,16 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Image _fadeImage;
|
private Image _fadeImage;
|
||||||
|
|
||||||
|
[Title("테스트")]
|
||||||
|
[SerializeField]
|
||||||
|
private bool _isUiClickTest;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private GraphicRaycaster _raycaster;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private EventSystem _eventSystem;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
// Unity events
|
// Unity events
|
||||||
@ -34,6 +46,46 @@ namespace BlueWater.Uis
|
|||||||
EventManager.OnFadeInOut += FadeInOut;
|
EventManager.OnFadeInOut += FadeInOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (!_isUiClickTest) return;
|
||||||
|
|
||||||
|
if (Input.GetMouseButtonDown(0))
|
||||||
|
{
|
||||||
|
// 1. UI Raycast
|
||||||
|
PointerEventData pointerData = new PointerEventData(_eventSystem)
|
||||||
|
{
|
||||||
|
position = Input.mousePosition
|
||||||
|
};
|
||||||
|
|
||||||
|
List<RaycastResult> uiResults = new List<RaycastResult>();
|
||||||
|
_raycaster.Raycast(pointerData, uiResults);
|
||||||
|
|
||||||
|
if (uiResults.Count > 0)
|
||||||
|
{
|
||||||
|
Debug.Log($"Clicked on UI: {uiResults[0].gameObject.name}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 3D Raycast
|
||||||
|
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
||||||
|
if (Physics.Raycast(ray, out RaycastHit hit))
|
||||||
|
{
|
||||||
|
Debug.Log($"Clicked on 3D Object: {hit.collider.gameObject.name}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 2D Raycast
|
||||||
|
Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
|
||||||
|
RaycastHit2D hit2D = Physics2D.Raycast(mousePosition, Vector2.zero);
|
||||||
|
|
||||||
|
if (hit2D.collider != null)
|
||||||
|
{
|
||||||
|
Debug.Log($"Clicked on 2D Object: {hit2D.collider.gameObject.name}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
EventManager.OnFadeInOut -= FadeInOut;
|
EventManager.OnFadeInOut -= FadeInOut;
|
||||||
|
@ -5,7 +5,7 @@ using UnityEngine.InputSystem.UI;
|
|||||||
|
|
||||||
namespace BlueWater
|
namespace BlueWater
|
||||||
{
|
{
|
||||||
public class UiNavigationController: MonoBehaviour
|
public class UiEventsController: MonoBehaviour
|
||||||
{
|
{
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public GameObject SelectObject { get; private set; }
|
public GameObject SelectObject { get; private set; }
|
||||||
@ -30,25 +30,35 @@ namespace BlueWater
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Enable(GameObject selectObject)
|
public void SetSelectObject(GameObject obj)
|
||||||
|
{
|
||||||
|
SelectObject = obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void EnableAutoNavigate(GameObject selectObject)
|
||||||
{
|
{
|
||||||
SelectObject = selectObject;
|
SelectObject = selectObject;
|
||||||
_inputModule.move.action.performed += OnNavigate;
|
_inputModule.move.action.performed += OnNavigate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Enable()
|
public void EnableAutoNavigate()
|
||||||
{
|
{
|
||||||
_inputModule.move.action.performed += OnNavigate;
|
_inputModule.move.action.performed += OnNavigate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Disable()
|
public void DisableAutoNavigate()
|
||||||
{
|
{
|
||||||
_inputModule.move.action.performed -= OnNavigate;
|
_inputModule.move.action.performed -= OnNavigate;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetSelectObject(GameObject obj)
|
public void EnableUiActions()
|
||||||
{
|
{
|
||||||
SelectObject = obj;
|
_inputModule.actionsAsset.Enable();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DisableUiActions()
|
||||||
|
{
|
||||||
|
_inputModule.actionsAsset.Disable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 312 KiB After Width: | Height: | Size: 286 KiB |
Before Width: | Height: | Size: 370 KiB After Width: | Height: | Size: 355 KiB |
Before Width: | Height: | Size: 410 KiB After Width: | Height: | Size: 416 KiB |
Before Width: | Height: | Size: 442 KiB After Width: | Height: | Size: 420 KiB |
Before Width: | Height: | Size: 373 KiB After Width: | Height: | Size: 365 KiB |
Before Width: | Height: | Size: 797 KiB After Width: | Height: | Size: 738 KiB |
Before Width: | Height: | Size: 433 KiB After Width: | Height: | Size: 417 KiB |
Before Width: | Height: | Size: 356 KiB After Width: | Height: | Size: 352 KiB |
Before Width: | Height: | Size: 388 KiB After Width: | Height: | Size: 370 KiB |
Before Width: | Height: | Size: 411 KiB After Width: | Height: | Size: 399 KiB |
Before Width: | Height: | Size: 408 KiB After Width: | Height: | Size: 414 KiB |
Before Width: | Height: | Size: 316 KiB After Width: | Height: | Size: 317 KiB |
Before Width: | Height: | Size: 726 KiB After Width: | Height: | Size: 682 KiB |
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 354 KiB |
Before Width: | Height: | Size: 802 KiB After Width: | Height: | Size: 741 KiB |
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 297 KiB |
BIN
Assets/03.Images/Ui/Balloon/CleaningTableBalloon.png
Normal file
After Width: | Height: | Size: 18 KiB |
143
Assets/03.Images/Ui/Balloon/CleaningTableBalloon.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8871b2ccf1863a24fbc61ffee1317009
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Balloon/CleaningTableBalloon2.png
Normal file
After Width: | Height: | Size: 18 KiB |
143
Assets/03.Images/Ui/Balloon/CleaningTableBalloon2.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f39113512867fc64195f17fda3d06d7b
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
BIN
Assets/03.Images/Ui/Balloon/CleaningVomitBalloon.png
Normal file
After Width: | Height: | Size: 19 KiB |
143
Assets/03.Images/Ui/Balloon/CleaningVomitBalloon.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: da8ec6f0e6835ec45be43ce7893c656a
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 33 KiB |
BIN
Assets/03.Images/Ui/Balloon/HearthalfBalloonFilled.png
Normal file
After Width: | Height: | Size: 32 KiB |
143
Assets/03.Images/Ui/Balloon/HearthalfBalloonFilled.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 66f1c43fd7b6b494c9c2ccb5b437122d
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Balloon/TrashCanBalloon.png
Normal file
After Width: | Height: | Size: 12 KiB |
143
Assets/03.Images/Ui/Balloon/TrashCanBalloon.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d19f1201784687d458810f4eac41b170
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Balloon/TrashCanBalloonFilled.png
Normal file
After Width: | Height: | Size: 13 KiB |
143
Assets/03.Images/Ui/Balloon/TrashCanBalloonFilled.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 17ed6e6b73f360f4da56be4109f01a86
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tycoon/CleaningTable.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
143
Assets/03.Images/Ui/Tycoon/CleaningTable.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 98ca48e3d3ee7424c9599cc915f1f964
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tycoon/CleaningVomit.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
143
Assets/03.Images/Ui/Tycoon/CleaningVomit.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e2da613ab7d3fe94c801ea12e08ee54d
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tycoon/CleaningWhite.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
143
Assets/03.Images/Ui/Tycoon/CleaningWhite.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d2e854d9e991e8e44a308e02390cf441
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 256
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -43,12 +43,12 @@ TextureImporter:
|
|||||||
nPOTScale: 0
|
nPOTScale: 0
|
||||||
lightmap: 0
|
lightmap: 0
|
||||||
compressionQuality: 50
|
compressionQuality: 50
|
||||||
spriteMode: 1
|
spriteMode: 2
|
||||||
spriteExtrude: 1
|
spriteExtrude: 1
|
||||||
spriteMeshType: 1
|
spriteMeshType: 1
|
||||||
alignment: 0
|
alignment: 0
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
spritePixelsToUnits: 1024
|
spritePixelsToUnits: 100
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
alphaUsage: 1
|
alphaUsage: 1
|
||||||
@ -93,9 +93,57 @@ TextureImporter:
|
|||||||
ignorePlatformSupport: 0
|
ignorePlatformSupport: 0
|
||||||
androidETC2FallbackOverride: 0
|
androidETC2FallbackOverride: 0
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
spriteSheet:
|
spriteSheet:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
sprites: []
|
sprites:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: DrinkExplain1_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 190
|
||||||
|
height: 67
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
border: {x: 32, y: 21, z: 33, w: 21}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 35d44f48c9fdb9c419baa95f0962bf0c
|
||||||
|
internalID: 1581558198
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
outline: []
|
outline: []
|
||||||
customData:
|
customData:
|
||||||
physicsShape: []
|
physicsShape: []
|
||||||
@ -109,7 +157,8 @@ TextureImporter:
|
|||||||
secondaryTextures: []
|
secondaryTextures: []
|
||||||
spriteCustomMetadata:
|
spriteCustomMetadata:
|
||||||
entries: []
|
entries: []
|
||||||
nameFileIdTable: {}
|
nameFileIdTable:
|
||||||
|
DrinkExplain1_0: 1581558198
|
||||||
mipmapLimitGroupName:
|
mipmapLimitGroupName:
|
||||||
pSDRemoveMatte: 0
|
pSDRemoveMatte: 0
|
||||||
userData:
|
userData:
|
||||||
|
8
Assets/03.Images/Ui/Tycoon/ManualBook.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 250901b9fa95e5b4194cfdd7a9f0f292
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tycoon/ManualBook/1ColorGuide.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
143
Assets/03.Images/Ui/Tycoon/ManualBook/1ColorGuide.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a536ab4b3069b5645a7672c33c9d158c
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tycoon/ManualBook/BottomLine.png
Normal file
After Width: | Height: | Size: 11 KiB |
167
Assets/03.Images/Ui/Tycoon/ManualBook/BottomLine.png.meta
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c83c38f6c29276848ba7821cb2e9e899
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: BottomLine_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 248
|
||||||
|
width: 512
|
||||||
|
height: 10
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: e631b0ffc0143104283ad672b9aa6aa0
|
||||||
|
internalID: -1457442933
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: c82f13a192a3ac249b43b3e7f772fd21
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
BottomLine_0: -1457442933
|
||||||
|
BottomLine_1: -1620694755
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tycoon/ManualBook/CocktailBox.png
Normal file
After Width: | Height: | Size: 12 KiB |
166
Assets/03.Images/Ui/Tycoon/ManualBook/CocktailBox.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 1aa9b9b713a23fe4faef2006222b9a1f
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: CocktailBox_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 11
|
||||||
|
y: 12
|
||||||
|
width: 234
|
||||||
|
height: 232
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 51b2d020ac9fff54583be5047b34530d
|
||||||
|
internalID: -2055551643
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: e65d1b82d73694747a32122566b865f4
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
CocktailBox_0: -2055551643
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tycoon/ManualBook/CocktailIngredientBox.png
Normal file
After Width: | Height: | Size: 20 KiB |
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 346954a754bb95743b1910c284572ff7
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 0
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 1
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: WindowsStoreApps
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable: {}
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|