Merge branch 'develop' of http://gitea.capers.co.kr:3000/capers/CapersRepo into lmg
@ -1,4 +1,5 @@
|
||||
using BehaviorDesigner.Runtime;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Enemies;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Players;
|
||||
@ -61,6 +62,10 @@ namespace BlueWater.Npcs.Crews
|
||||
|
||||
[field: SerializeField, Required]
|
||||
public AiMovement AIMovement { get; private set; }
|
||||
|
||||
[Title("사운드")]
|
||||
[SerializeField]
|
||||
private string _createCrewSfxName = "CreateCrew";
|
||||
|
||||
public bool IsMoving { get; protected set; }
|
||||
|
||||
@ -126,6 +131,7 @@ namespace BlueWater.Npcs.Crews
|
||||
|
||||
public virtual void Initialize()
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_createCrewSfxName);
|
||||
BehaviorTree.EnableBehavior();
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,11 @@
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Interfaces;
|
||||
|
||||
namespace BlueWater.Npcs.Customers
|
||||
{
|
||||
public class VomitState : IStateMachine<Customer>
|
||||
{
|
||||
private string _vomitSfxName = "Vomit";
|
||||
private bool _isVomiting;
|
||||
|
||||
public void EnterState(Customer character)
|
||||
@ -13,8 +15,9 @@ namespace BlueWater.Npcs.Customers
|
||||
|
||||
public void UpdateState(Customer character)
|
||||
{
|
||||
if (character.SpineController.IsAnimationComplete())
|
||||
if (!_isVomiting && character.SpineController.IsAnimationComplete())
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_vomitSfxName);
|
||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
||||
_isVomiting = true;
|
||||
}
|
||||
|
@ -10,9 +10,6 @@ namespace BlueWater.Players
|
||||
public class PlayerHealthPoint : MonoBehaviour, IDamageable
|
||||
{
|
||||
// Components
|
||||
[SerializeField]
|
||||
private SpriteRenderer _spriteRenderer;
|
||||
|
||||
private IDashable _dashable;
|
||||
private ISkillHandler _skillHandler;
|
||||
|
||||
@ -29,9 +26,22 @@ namespace BlueWater.Players
|
||||
[field: SerializeField]
|
||||
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]
|
||||
private string heartRecoverySfxName;
|
||||
|
||||
private Material _materialInstance;
|
||||
private WaitForSeconds _flashWhiteWaitTime;
|
||||
private Coroutine _flashWhiteCoroutine;
|
||||
private Coroutine _damageIntervalCoroutine;
|
||||
@ -55,8 +65,6 @@ namespace BlueWater.Players
|
||||
[Button("컴포넌트 초기화")]
|
||||
private void InitializeComponents()
|
||||
{
|
||||
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
|
||||
|
||||
_dashable = GetComponent<IDashable>();
|
||||
_skillHandler = GetComponent<ISkillHandler>();
|
||||
}
|
||||
@ -106,12 +114,17 @@ namespace BlueWater.Players
|
||||
return !isDashing && !isActivatingSkill;
|
||||
}
|
||||
|
||||
[Button("데미지 테스트")]
|
||||
public void TakeDamage(int damageAmount)
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(attackedSfxName);
|
||||
IsInvincible = true;
|
||||
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
|
||||
SetCurrentHealthPoint(changeHp);
|
||||
AudioManager.Instance.PlaySfx("CombatPlayerAttacked");
|
||||
if (_isShaking)
|
||||
{
|
||||
VisualFeedbackManager.Instance.CameraShake(TycoonCameraManager.Instance.BaseCamera, _shakingPower, _shakingDuration);
|
||||
}
|
||||
|
||||
// 죽었는지 체크
|
||||
if (changeHp == 0f)
|
||||
@ -120,7 +133,7 @@ namespace BlueWater.Players
|
||||
return;
|
||||
}
|
||||
|
||||
if (_spriteRenderer.material.HasInt(IsHitHash))
|
||||
if (_materialInstance.HasInt(IsHitHash))
|
||||
{
|
||||
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||
}
|
||||
@ -143,9 +156,9 @@ namespace BlueWater.Players
|
||||
{
|
||||
for (var i = 0; i < 5; i++)
|
||||
{
|
||||
_spriteRenderer.material.SetInt(IsHitHash, 1);
|
||||
_materialInstance.SetInt(IsHitHash, 1);
|
||||
yield return _flashWhiteWaitTime;
|
||||
_spriteRenderer.material.SetInt(IsHitHash, 0);
|
||||
_materialInstance.SetInt(IsHitHash, 0);
|
||||
yield return _flashWhiteWaitTime;
|
||||
}
|
||||
|
||||
@ -160,5 +173,6 @@ namespace BlueWater.Players
|
||||
|
||||
public void ActivateInvincibility() => IsInvincible = true;
|
||||
public void DeactivateInvincibility() => IsInvincible = false;
|
||||
public void SetMaterialInstance(Material materialInstance) => _materialInstance = materialInstance;
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Tycoons;
|
||||
using BlueWater.Utility;
|
||||
@ -27,7 +28,26 @@ namespace BlueWater.Players.Tycoons
|
||||
|
||||
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
|
||||
[field: Title("대쉬")]
|
||||
@ -42,6 +62,10 @@ namespace BlueWater.Players.Tycoons
|
||||
|
||||
[SerializeField]
|
||||
private ParticleSystem _dashParticle;
|
||||
|
||||
[Title("사운드")]
|
||||
[SerializeField]
|
||||
private string _walkingSfxName = "TycoonPlayerWalking";
|
||||
|
||||
public bool IsDashEnabled { get; private set; } = true;
|
||||
public bool IsDashing { get; private set; }
|
||||
@ -59,6 +83,7 @@ namespace BlueWater.Players.Tycoons
|
||||
if (value == Vector3.zero) return;
|
||||
|
||||
_currentDirection = value;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -172,7 +197,11 @@ namespace BlueWater.Players.Tycoons
|
||||
|
||||
public void Move()
|
||||
{
|
||||
if (IsDashing) return;
|
||||
if (IsDashing)
|
||||
{
|
||||
IsMoving = false;
|
||||
return;
|
||||
}
|
||||
|
||||
CurrentDirection = _inputDirection;
|
||||
IsMoving = _inputDirection != Vector3.zero;
|
||||
|
@ -5,7 +5,6 @@ using BlueWater.Uis;
|
||||
using Sirenix.OdinInspector;
|
||||
using Spine.Unity;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
|
||||
namespace BlueWater.Players.Tycoons
|
||||
{
|
||||
@ -67,6 +66,8 @@ namespace BlueWater.Players.Tycoons
|
||||
[SerializeField]
|
||||
private Vector3 _offset = new(0f, 1.5f, 0f);
|
||||
|
||||
public Material MaterialInstance { get; protected set; }
|
||||
|
||||
public bool IsCleaningFloor { get; set; }
|
||||
public bool IsCleaningTable { get; set; }
|
||||
public bool IsCleaningMold { get; set; }
|
||||
@ -108,6 +109,12 @@ namespace BlueWater.Players.Tycoons
|
||||
EventManager.OnPlaceOnServingTable += PlaceOnServingTable;
|
||||
|
||||
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();
|
||||
WalkingState = new WalkingState();
|
||||
@ -167,7 +174,10 @@ namespace BlueWater.Players.Tycoons
|
||||
|
||||
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.CompleteFirstGame, true);
|
||||
}
|
||||
|
@ -6,6 +6,7 @@ using BlueWater.Interfaces;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Npcs.Customers;
|
||||
using BlueWater.Utility;
|
||||
using Newtonsoft.Json;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
@ -202,23 +203,28 @@ namespace BlueWater.Editors
|
||||
}
|
||||
}
|
||||
|
||||
// 새로운 데이터를 기존 데이터에 덮어쓰거나 추가
|
||||
// 새로운 데이터를 처리
|
||||
foreach (var newDataItem in newData)
|
||||
{
|
||||
if (newDataItem == null || newDataItem.Value == null) continue;
|
||||
|
||||
if (existingDataDict.TryGetValue(newDataItem.Key, out var existingItem))
|
||||
{
|
||||
// 기존 데이터가 있으면 업데이트
|
||||
var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
|
||||
foreach (var property in properties)
|
||||
{
|
||||
var newValue = property.GetValue(newDataItem.Value);
|
||||
var existingValue = property.GetValue(existingItem.Value);
|
||||
|
||||
// 덮어쓰기 조건 (참조 타입이거나, 값 타입이 기본값이 아닌 경우에만 덮어씀)
|
||||
if (ShouldOverwriteProperty(newValue, existingValue, property))
|
||||
// JSON 데이터에서 덮어쓸 프로퍼티만 처리
|
||||
if (property.GetCustomAttribute<JsonPropertyAttribute>() != null)
|
||||
{
|
||||
property.SetValue(existingItem.Value, newValue);
|
||||
var newValue = property.GetValue(newDataItem.Value);
|
||||
var existingValue = property.GetValue(existingItem.Value);
|
||||
|
||||
// 덮어쓰기 조건 확인
|
||||
if (ShouldOverwriteProperty(newValue, existingValue, property))
|
||||
{
|
||||
property.SetValue(existingItem.Value, newValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -229,7 +235,7 @@ namespace BlueWater.Editors
|
||||
}
|
||||
}
|
||||
|
||||
// 기존 데이터 리스트를 다시 갱신
|
||||
// 기존 데이터를 유지하고 새로운 데이터를 덮어쓰거나 추가한 결과로 갱신
|
||||
existingData.Clear();
|
||||
existingData.AddRange(existingDataDict.Values);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
using Sirenix.OdinInspector;
|
||||
using Sirenix.Utilities;
|
||||
using UnityEngine;
|
||||
@ -11,42 +12,55 @@ namespace BlueWater.Items
|
||||
public class CocktailData : IPickup
|
||||
{
|
||||
[BoxGroup("Json 데이터 영역")]
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||
public string Idx { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("오차 범위"), BoxGroup("Json 데이터 영역")]
|
||||
public int RatioRange { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string IngredientIdx1 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public int IngredientRatio1 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string IngredientIdx2 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public int IngredientRatio2 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string IngredientIdx3 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public int IngredientRatio3 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string IngredientIdx4 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public int IngredientRatio4 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string IngredientIdx5 { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public int IngredientRatio5 { get; set; }
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using BlueWater.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
@ -16,15 +17,19 @@ namespace BlueWater.Items
|
||||
public class LiquidData : IIdx
|
||||
{
|
||||
[BoxGroup("Json 데이터 영역")]
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||
public string Idx { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")]
|
||||
public LiquidType Type { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")]
|
||||
public int Amount { get; set; }
|
||||
|
||||
|
@ -38,27 +38,35 @@ namespace BlueWater.Items
|
||||
public class ItemData : IPickup
|
||||
{
|
||||
[BoxGroup("Json 데이터 영역")]
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||
public string Idx { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||
public string Name { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("아이템 종류"), BoxGroup("Json 데이터 영역")]
|
||||
public ItemType Type { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("재료 종류"), BoxGroup("Json 데이터 영역")]
|
||||
public IngredientType IngredientType { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("아이템 품질"), BoxGroup("Json 데이터 영역")]
|
||||
public ItemQuality Quality { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
||||
public int Price { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("무게"), BoxGroup("Json 데이터 영역")]
|
||||
public int Weight { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("설명"), TextArea(3, 10), BoxGroup("Json 데이터 영역")]
|
||||
public string Description { get; set; }
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Localization.Settings;
|
||||
@ -11,7 +12,11 @@ namespace BlueWater
|
||||
Korean = 0,
|
||||
English = 1,
|
||||
ChineseSimplified = 2,
|
||||
Spanish = 3
|
||||
ChineseTradition = 3,
|
||||
Japanese = 4,
|
||||
Spanish = 5,
|
||||
Russian = 6,
|
||||
French = 7
|
||||
}
|
||||
|
||||
public class LocalizationManager : Singleton<LocalizationManager>
|
||||
@ -19,7 +24,13 @@ namespace BlueWater
|
||||
public bool IsInitialized;
|
||||
|
||||
[SerializeField]
|
||||
private Material _defaultFontMaterial;
|
||||
private List<Material> _usedFontMaterials = new();
|
||||
|
||||
[SerializeField]
|
||||
private float _defaultOutlineSize = 0.2f;
|
||||
|
||||
[SerializeField]
|
||||
private float _chineseOutlineSize = 0.05f;
|
||||
|
||||
private bool _isChanging;
|
||||
|
||||
@ -51,13 +62,13 @@ namespace BlueWater
|
||||
yield return LocalizationSettings.InitializationOperation;
|
||||
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[(int)localeType];
|
||||
|
||||
if (localeType == LocaleType.ChineseSimplified)
|
||||
if (localeType == LocaleType.ChineseSimplified || localeType == LocaleType.ChineseTradition)
|
||||
{
|
||||
SetMaterialOutline(0.1f);
|
||||
SetMaterialOutline(_chineseOutlineSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetMaterialOutline(0.2f);
|
||||
SetMaterialOutline(_defaultOutlineSize);
|
||||
}
|
||||
ES3.Save(SaveData.Locale, (int)localeType);
|
||||
|
||||
@ -87,14 +98,21 @@ namespace BlueWater
|
||||
LocaleType.Korean => "한국어",
|
||||
LocaleType.English => "English",
|
||||
LocaleType.ChineseSimplified => "中文(简体)",
|
||||
LocaleType.ChineseTradition => "中文(繁體)",
|
||||
LocaleType.Japanese => "日本語",
|
||||
LocaleType.Spanish => "Español",
|
||||
LocaleType.Russian => "Русский",
|
||||
LocaleType.French => "Français",
|
||||
_ => "Unknown"
|
||||
};
|
||||
}
|
||||
|
||||
public void SetMaterialOutline(float value)
|
||||
{
|
||||
_defaultFontMaterial.SetFloat(OutlineWidthHash, value);
|
||||
foreach (var element in _usedFontMaterials)
|
||||
{
|
||||
element.SetFloat(OutlineWidthHash, value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -46,6 +46,8 @@ namespace BlueWater
|
||||
{
|
||||
[SerializeField]
|
||||
private PlayerInput _currentPlayerInput;
|
||||
|
||||
public bool IsInitialized { get; private set; }
|
||||
|
||||
protected override void OnAwake()
|
||||
{
|
||||
@ -73,6 +75,7 @@ namespace BlueWater
|
||||
|
||||
private async Task Initialize()
|
||||
{
|
||||
IsInitialized = false;
|
||||
await Task.Delay(1000);
|
||||
|
||||
DisableAllActionMaps();
|
||||
@ -86,6 +89,8 @@ namespace BlueWater
|
||||
{
|
||||
SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||
}
|
||||
|
||||
IsInitialized = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Utility;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
@ -54,6 +55,9 @@ namespace BlueWater.Tycoons
|
||||
|
||||
[SerializeField]
|
||||
private float _playerHoldingTime = 3f;
|
||||
|
||||
[SerializeField]
|
||||
private string _attackMoldSfxName = "AttackMold";
|
||||
|
||||
private bool _isPlayerInteracting;
|
||||
private int _currentLevel;
|
||||
@ -121,6 +125,7 @@ namespace BlueWater.Tycoons
|
||||
}
|
||||
else
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_attackMoldSfxName, true);
|
||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = true;
|
||||
_isPlayerInteracting = true;
|
||||
}
|
||||
@ -135,6 +140,7 @@ namespace BlueWater.Tycoons
|
||||
}
|
||||
else
|
||||
{
|
||||
AudioManager.Instance.StopSfx(_attackMoldSfxName);
|
||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = false;
|
||||
_isPlayerInteracting = false;
|
||||
HoldingElapsedTime = 0f;
|
||||
@ -373,21 +379,27 @@ namespace BlueWater.Tycoons
|
||||
{
|
||||
case 0:
|
||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel0, false);
|
||||
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel0, false);
|
||||
break;
|
||||
case 1:
|
||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel1, false);
|
||||
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel1, false);
|
||||
break;
|
||||
case 2:
|
||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel2, false);
|
||||
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel2, false);
|
||||
break;
|
||||
case 3:
|
||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel3, false);
|
||||
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel3, false);
|
||||
break;
|
||||
case 4:
|
||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel4, false);
|
||||
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel4, false);
|
||||
break;
|
||||
case 5:
|
||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel5, false);
|
||||
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel5, false);
|
||||
break;
|
||||
default:
|
||||
throw new Exception("_currentLevel 존재하지 않는 값");
|
||||
|
@ -1,10 +1,17 @@
|
||||
using System;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Players;
|
||||
using BlueWater.Uis;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BlueWater.Tycoons
|
||||
{
|
||||
public static class PumpSpineAnimation
|
||||
{
|
||||
public const string Idle = "Idle";
|
||||
public const string Run = "Run";
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class Pump : InteractionFurniture
|
||||
{
|
||||
@ -23,6 +30,12 @@ namespace BlueWater.Tycoons
|
||||
[SerializeField, Range(0, 1000)]
|
||||
private int addedLiquid = 400;
|
||||
|
||||
[SerializeField]
|
||||
private string _attackSfxName = "AttackWhip";
|
||||
|
||||
[SerializeField]
|
||||
private string _playPumpSfxName = "PlayPump";
|
||||
|
||||
private bool _isPlayerInteracting;
|
||||
|
||||
protected override void Awake()
|
||||
@ -36,7 +49,7 @@ namespace BlueWater.Tycoons
|
||||
{
|
||||
base.Start();
|
||||
|
||||
_spineController.PlayAnimation("Idle", true);
|
||||
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
@ -72,16 +85,20 @@ namespace BlueWater.Tycoons
|
||||
|
||||
public override void Interaction()
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_attackSfxName, true);
|
||||
AudioManager.Instance.PlaySfx(_playPumpSfxName, true);
|
||||
GameManager.Instance.CurrentTycoonPlayer.IsPumping = true;
|
||||
_isPlayerInteracting = true;
|
||||
_spineController.PlayAnimation("Run", true);
|
||||
_spineController.PlayAnimation(PumpSpineAnimation.Run, true);
|
||||
}
|
||||
|
||||
public override void CancelInteraction()
|
||||
{
|
||||
AudioManager.Instance.StopSfx(_attackSfxName);
|
||||
AudioManager.Instance.StopSfx(_playPumpSfxName);
|
||||
GameManager.Instance.CurrentTycoonPlayer.IsPumping = false;
|
||||
_isPlayerInteracting = false;
|
||||
_spineController.PlayAnimation("Idle", true);
|
||||
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||
}
|
||||
|
||||
public override bool CanInteraction()
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using BlueWater.Audios;
|
||||
using DG.Tweening;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
@ -9,6 +10,7 @@ namespace BlueWater.Tycoons
|
||||
[Serializable]
|
||||
public class RewardBox : InteractionFurniture
|
||||
{
|
||||
[Title("참조")]
|
||||
[SerializeField]
|
||||
private AnimationController _animationController;
|
||||
|
||||
@ -25,6 +27,9 @@ namespace BlueWater.Tycoons
|
||||
[SerializeField]
|
||||
private Ease _ease = Ease.OutQuad;
|
||||
|
||||
[SerializeField]
|
||||
private string _interactionFailedSfxName = "RewardBoxInteractionFailed";
|
||||
|
||||
private Tween _unavailablePurchaseTween;
|
||||
private RewardBoxType _rewardBoxType;
|
||||
private int _requiredGold;
|
||||
@ -55,6 +60,7 @@ namespace BlueWater.Tycoons
|
||||
|
||||
if (TycoonManager.Instance.TycoonStatus.CurrentGold < _requiredGold)
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_interactionFailedSfxName);
|
||||
_unavailablePurchaseTween.Restart();
|
||||
return;
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Npcs.Crews;
|
||||
@ -16,6 +17,9 @@ namespace BlueWater.Tycoons
|
||||
[FormerlySerializedAs("_cocktailGlassImage")]
|
||||
[SerializeField]
|
||||
protected SpriteRenderer CocktailGlassImage;
|
||||
|
||||
[SerializeField]
|
||||
private string _putDownSfxName = "PutDownCocktail";
|
||||
|
||||
// 서빙 테이블 기준 아이템이 있는지 없는지
|
||||
private IPickup _currentPickupItem;
|
||||
@ -78,6 +82,7 @@ namespace BlueWater.Tycoons
|
||||
// 테이블에 칵테일을 놓는 경우
|
||||
else
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_putDownSfxName);
|
||||
CurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
|
||||
CocktailGlassImage.sprite = CurrentPickupItem.Sprite;
|
||||
CocktailGlassImage.enabled = true;
|
||||
|
@ -122,11 +122,8 @@ namespace BlueWater.Tycoons
|
||||
}
|
||||
}
|
||||
|
||||
if (_isCrewInteracting)
|
||||
{
|
||||
OnInteractionCompleted?.Invoke();
|
||||
OnInteractionCompleted = null;
|
||||
}
|
||||
OnInteractionCompleted?.Invoke();
|
||||
OnInteractionCompleted = null;
|
||||
|
||||
EventManager.InvokeCleaningResult(true);
|
||||
CleanTable();
|
||||
@ -222,7 +219,7 @@ namespace BlueWater.Tycoons
|
||||
_currentLevelData = TycoonManager.Instance.GetCurrentLevelData();
|
||||
Food.sprite = _emptyBeerGlass;
|
||||
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;
|
||||
|
||||
var crewController = TycoonManager.Instance.CrewController;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Interfaces;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Players;
|
||||
using UnityEngine;
|
||||
@ -199,10 +200,17 @@ namespace BlueWater.Tycoons
|
||||
|
||||
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);
|
||||
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Waiting, 0,
|
||||
TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
|
||||
EventManager.InvokeCocktailCompleted(randomCocktail, false);
|
||||
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
|
||||
|
||||
HoldingElapsedTime = 0f;
|
||||
_canInteraction = false;
|
||||
|
@ -102,7 +102,7 @@ namespace BlueWater.Tycoons
|
||||
|
||||
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;
|
||||
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
|
||||
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
|
||||
@ -134,11 +134,9 @@ namespace BlueWater.Tycoons
|
||||
{
|
||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
|
||||
}
|
||||
if (_isCrewInteracting)
|
||||
{
|
||||
OnInteractionCompleted?.Invoke();
|
||||
OnInteractionCompleted = null;
|
||||
}
|
||||
|
||||
OnInteractionCompleted?.Invoke();
|
||||
OnInteractionCompleted = null;
|
||||
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
@ -35,3 +35,5 @@ MonoBehaviour:
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 1bc7195dc49231b49b0adb01fac3ec8c, type: 3}
|
||||
- <BgmName>k__BackingField: TycoonBgm02
|
||||
<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
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: cdccda37bdd4fb74d9cc670189794dce, type: 3}
|
||||
- <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
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 67376a69110e3974d8881b5c746622a7, type: 3}
|
||||
- <SfxName>k__BackingField: CleaningTable
|
||||
<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}
|
||||
- <SfxName>k__BackingField: CloseManualBook
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: b1d132518b614a743ac3a571ac75718c, type: 3}
|
||||
- <SfxName>k__BackingField: SucceedServing
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 2d6aad5746316bf4fb6bb7aed8d89c4e, type: 3}
|
||||
- <SfxName>k__BackingField: FailedServing
|
||||
@ -91,7 +93,33 @@ MonoBehaviour:
|
||||
<Clip>k__BackingField: {fileID: 8300000, guid: 9778d97789d1ea245a9d31c2ff915bb7, type: 3}
|
||||
- <SfxName>k__BackingField: GainGold
|
||||
<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}
|
||||
- <SfxName>k__BackingField: SelectedButton01
|
||||
<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
|
||||
<Value>k__BackingField:
|
||||
<Idx>k__BackingField: LiquidA
|
||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561A"
|
||||
<Name>k__BackingField: "\uC5EC\uC2E0\uC758 \uB208\uBB3C"
|
||||
<Type>k__BackingField: 1
|
||||
<Amount>k__BackingField: 99999
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3}
|
||||
@ -24,7 +24,7 @@ MonoBehaviour:
|
||||
- <Key>k__BackingField: LiquidB
|
||||
<Value>k__BackingField:
|
||||
<Idx>k__BackingField: LiquidB
|
||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561B"
|
||||
<Name>k__BackingField: "\uB808\uBE44\uC544\uD0C4\uC758 \uB3C5\uB2C8"
|
||||
<Type>k__BackingField: 1
|
||||
<Amount>k__BackingField: 2000
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3}
|
||||
@ -32,7 +32,7 @@ MonoBehaviour:
|
||||
- <Key>k__BackingField: LiquidC
|
||||
<Value>k__BackingField:
|
||||
<Idx>k__BackingField: LiquidC
|
||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561C"
|
||||
<Name>k__BackingField: "\uB9DD\uB839\uC8FC"
|
||||
<Type>k__BackingField: 1
|
||||
<Amount>k__BackingField: 2000
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3}
|
||||
@ -40,7 +40,7 @@ MonoBehaviour:
|
||||
- <Key>k__BackingField: LiquidD
|
||||
<Value>k__BackingField:
|
||||
<Idx>k__BackingField: LiquidD
|
||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561D"
|
||||
<Name>k__BackingField: "\uC2EC\uD574\uC758 \uC6A9\uACFC\uC8FC"
|
||||
<Type>k__BackingField: 1
|
||||
<Amount>k__BackingField: 2000
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3}
|
||||
@ -48,7 +48,7 @@ MonoBehaviour:
|
||||
- <Key>k__BackingField: LiquidE
|
||||
<Value>k__BackingField:
|
||||
<Idx>k__BackingField: LiquidE
|
||||
<Name>k__BackingField: "\uC220 \uC6D0\uC561E"
|
||||
<Name>k__BackingField: "\uC800\uC2B9 \uBC8C\uAFC0\uC8FC"
|
||||
<Type>k__BackingField: 1
|
||||
<Amount>k__BackingField: 2000
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 2fc24dca6ce6ac94da0187dfce24fa3a, type: 3}
|
||||
@ -56,7 +56,7 @@ MonoBehaviour:
|
||||
- <Key>k__BackingField: Garnish1
|
||||
<Value>k__BackingField:
|
||||
<Idx>k__BackingField: Garnish1
|
||||
<Name>k__BackingField: "\uAC00\uB2C8\uC26C1"
|
||||
<Name>k__BackingField: "\uC5BC\uC74C \uC2AC\uB77C\uC784 \uC870\uAC01"
|
||||
<Type>k__BackingField: 2
|
||||
<Amount>k__BackingField: 2000
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3}
|
||||
@ -64,7 +64,7 @@ MonoBehaviour:
|
||||
- <Key>k__BackingField: Garnish2
|
||||
<Value>k__BackingField:
|
||||
<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
|
||||
<Amount>k__BackingField: 2000
|
||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 1506abfb2ff26fa4aacdeb4b0efc9663, type: 3}
|
||||
|
@ -24,6 +24,6 @@ namespace BlueWater
|
||||
public Sprite Waiting { get; private set; }
|
||||
|
||||
[field: SerializeField]
|
||||
public Sprite Cleaning { get; private set; }
|
||||
public Sprite Dirty { get; private set; }
|
||||
}
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using BlueWater.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
@ -9,12 +10,15 @@ namespace BlueWater
|
||||
public class CardData : IIdx
|
||||
{
|
||||
[BoxGroup("Json 데이터 영역")]
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string Idx { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("Text"), BoxGroup("Json 데이터 영역")]
|
||||
public string ScriptText { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("최대 값"), BoxGroup("Json 데이터 영역")]
|
||||
public int Max { get; set; }
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using BlueWater.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
@ -9,9 +10,11 @@ namespace BlueWater
|
||||
public class CardNormalData : IIdx
|
||||
{
|
||||
[BoxGroup("Json 데이터 영역")]
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string Idx { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||
public int Ratio { get; set; }
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using BlueWater.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
@ -9,9 +10,11 @@ namespace BlueWater
|
||||
public class CardRareData : IIdx
|
||||
{
|
||||
[BoxGroup("Json 데이터 영역")]
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string Idx { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||
public int Ratio { get; set; }
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using BlueWater.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
@ -9,12 +10,15 @@ namespace BlueWater
|
||||
public class CardShopData : IIdx
|
||||
{
|
||||
[BoxGroup("Json 데이터 영역")]
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||
public string Idx { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||
public int Ratio { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
||||
public int Price { get; set; }
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using BlueWater.Interfaces;
|
||||
using Newtonsoft.Json;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
|
||||
@ -15,36 +16,47 @@ namespace BlueWater
|
||||
public class LevelData : IIdx
|
||||
{
|
||||
[BoxGroup("Json 데이터 영역")]
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("레벨"), BoxGroup("Json 데이터 영역")]
|
||||
public string Idx { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("손님 재입장 시간"), BoxGroup("Json 데이터 영역")]
|
||||
public int CustomerRespawn { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("기본 골드량"), BoxGroup("Json 데이터 영역")]
|
||||
public int Gold { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("기본 경험치량"), BoxGroup("Json 데이터 영역")]
|
||||
public int Exp { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("레벨업 요구 경험치량"), BoxGroup("Json 데이터 영역")]
|
||||
public int RequiredExp { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("얌전히 기다리는 시간"), BoxGroup("Json 데이터 영역")]
|
||||
public int WaitTime { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("재촉하는 시간 (게이지 활성화)"), BoxGroup("Json 데이터 영역")]
|
||||
public int HurryTime { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("먹는 시간"), BoxGroup("Json 데이터 영역")]
|
||||
public int EatingTime { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("업그레이드 목록"), BoxGroup("Json 데이터 영역")]
|
||||
public string OpenUpgrade { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("보물상자 종류"), BoxGroup("Json 데이터 영역")]
|
||||
public RewardBoxType RewardBoxType { get; set; }
|
||||
|
||||
[JsonProperty]
|
||||
[field: SerializeField, Tooltip("보물상자 가격"), BoxGroup("Json 데이터 영역")]
|
||||
public int RewardBoxPrice { get; set; }
|
||||
}
|
||||
|
@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Uis;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
@ -10,6 +12,7 @@ namespace BlueWater.Tycoons
|
||||
[SerializeField]
|
||||
private TycoonCard _tycoonCardPrefab;
|
||||
|
||||
[Title("So")]
|
||||
[field: SerializeField, Required]
|
||||
public CardDataSo CardDataSo { get; private set; }
|
||||
|
||||
@ -22,18 +25,25 @@ namespace BlueWater.Tycoons
|
||||
[field: SerializeField, Required]
|
||||
public CardRareDataSo CardRareDataSo { get; private set; }
|
||||
|
||||
[Title("사운드")]
|
||||
[SerializeField]
|
||||
private string _selectCardSfxName = "SelectCard";
|
||||
|
||||
private TycoonManager _tycoonManager;
|
||||
private TycoonStatus _tycoonStatus;
|
||||
|
||||
[ShowInInspector]
|
||||
public Dictionary<string, int> SelectedCard { get; private set; }
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
SelectedCard = new Dictionary<string, int>(CardDataSo.GetDataCount());
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_tycoonManager = TycoonManager.Instance;
|
||||
_tycoonStatus = _tycoonManager.TycoonStatus;
|
||||
|
||||
SelectedCard = new Dictionary<string, int>(CardDataSo.GetDataCount());
|
||||
}
|
||||
|
||||
public TycoonCard CreateTycoonCard(Transform instantiateLocation = null)
|
||||
@ -55,6 +65,7 @@ namespace BlueWater.Tycoons
|
||||
|
||||
public void SelectCard(TycoonCard currentTycoonCard)
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_selectCardSfxName, ignoreTimeScale:true);
|
||||
currentTycoonCard.CardCountUp();
|
||||
|
||||
switch (currentTycoonCard.CardDataForIdx.Idx) //탐색 후 행동...
|
||||
|
@ -105,6 +105,7 @@ public class TycoonGameOver : PopupUi
|
||||
{
|
||||
Open();
|
||||
|
||||
AudioManager.Instance.StopBgm();
|
||||
AudioManager.Instance.PlaySfx(_gameOverSfxName, ignoreTimeScale: true);
|
||||
|
||||
// 2.0초 동안은 흔들리기만 함
|
||||
|
@ -26,6 +26,7 @@ namespace BlueWater.Tycoons
|
||||
[SerializeField]
|
||||
private RewardBox _rareRewardBoxObject;
|
||||
|
||||
[ShowInInspector]
|
||||
public Dictionary<string, int> InstanceCocktailDatas { get; private set; } = new();
|
||||
|
||||
private int _playerServingCount;
|
||||
|
@ -323,7 +323,7 @@ namespace BlueWater.Tycoons
|
||||
PlayerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier;
|
||||
PlayerDashCooldownReduction = 0;
|
||||
TipMultiplier = 0f;
|
||||
EndGoldMultiplier = 0.5f;
|
||||
EndGoldMultiplier = 0f;
|
||||
_customerHurryTimeIncrease = 0;
|
||||
BarrelAutoIncrease = 0;
|
||||
ServerTipMultiplier = 0f;
|
||||
|
@ -9,6 +9,9 @@ using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.Localization;
|
||||
using UnityEngine.Localization.Settings;
|
||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public enum ScreenMode
|
||||
@ -42,14 +45,16 @@ public class TitleOptions : PopupUi
|
||||
private TMP_Dropdown _languageDropdown;
|
||||
|
||||
private AudioManager _audioManager;
|
||||
|
||||
private InputAction _interactionEAction;
|
||||
private InputAction _closeOptionsAction;
|
||||
private Coroutine _changedLocaleInstance;
|
||||
|
||||
public Action CloseOptions;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||
|
||||
_interactionEAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.InteractionE);
|
||||
_closeOptionsAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.TycoonUi, TycoonUiActions.Cancel);
|
||||
|
||||
@ -72,6 +77,8 @@ public class TitleOptions : PopupUi
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
LocalizationSettings.SelectedLocaleChanged -= OnChangedLocale;
|
||||
|
||||
if (_interactionEAction != null)
|
||||
{
|
||||
_interactionEAction.performed -= OnInteractionE;
|
||||
@ -92,6 +99,29 @@ public class TitleOptions : PopupUi
|
||||
_screenModeDropdown.onValueChanged.RemoveListener(SetScreenMode);
|
||||
}
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
|
@ -3,6 +3,7 @@ using BlueWater.Uis;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BlueWater
|
||||
@ -18,8 +19,8 @@ namespace BlueWater
|
||||
[SerializeField]
|
||||
private Button _cancelButton;
|
||||
|
||||
[SerializeField]
|
||||
private UiNavigationController _uiNavigationController;
|
||||
[FormerlySerializedAs("_uiNavigationController")] [SerializeField]
|
||||
private UiEventsController uiEventsController;
|
||||
|
||||
private InputAction _interactionEAction;
|
||||
private InputAction _closeOptionsAction;
|
||||
@ -66,7 +67,7 @@ namespace BlueWater
|
||||
_interactionEAction.performed += OnInteractionE;
|
||||
_closeOptionsAction.performed += OnCloseOptions;
|
||||
|
||||
_uiNavigationController.Enable(_cancelButton.gameObject);
|
||||
uiEventsController.EnableAutoNavigate(_cancelButton.gameObject);
|
||||
}
|
||||
|
||||
public override void DisableInput()
|
||||
@ -74,7 +75,7 @@ namespace BlueWater
|
||||
_interactionEAction.performed -= OnInteractionE;
|
||||
_closeOptionsAction.performed -= OnCloseOptions;
|
||||
|
||||
_uiNavigationController.Disable();
|
||||
uiEventsController.DisableAutoNavigate();
|
||||
}
|
||||
|
||||
public void OnInteractionE(InputAction.CallbackContext context)
|
||||
|
@ -54,8 +54,8 @@ namespace BlueWater.Titles
|
||||
[SerializeField]
|
||||
private Image _ink;
|
||||
|
||||
[SerializeField]
|
||||
private UiNavigationController _uiNavigationController;
|
||||
[FormerlySerializedAs("_uiNavigationController")] [SerializeField]
|
||||
private UiEventsController uiEventsController;
|
||||
|
||||
public Material inkMaterialInstance { get; private set; }
|
||||
|
||||
@ -111,9 +111,18 @@ namespace BlueWater.Titles
|
||||
_lobbyButton?.onClick.AddListener(() => SceneController.Instance?.LoadScene(SceneName.TycoonTile));
|
||||
}
|
||||
|
||||
_interactionEAction = null;
|
||||
_openAction = null;
|
||||
_closeAction = null;
|
||||
if (_interactionEAction != null)
|
||||
{
|
||||
_interactionEAction.performed -= OnInteractionE;
|
||||
}
|
||||
if (_openAction != null)
|
||||
{
|
||||
_openAction.performed -= OnOpen;
|
||||
}
|
||||
if (_closeAction != null)
|
||||
{
|
||||
_closeAction.performed -= OnClose;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnOpen(InputAction.CallbackContext context)
|
||||
@ -166,11 +175,11 @@ namespace BlueWater.Titles
|
||||
{
|
||||
if (_isTitleScene)
|
||||
{
|
||||
_uiNavigationController.Enable(_startGameButton.gameObject);
|
||||
uiEventsController.EnableAutoNavigate(_startGameButton.gameObject);
|
||||
}
|
||||
else
|
||||
{
|
||||
_uiNavigationController.Enable(_resumeGameButton.gameObject);
|
||||
uiEventsController.EnableAutoNavigate(_resumeGameButton.gameObject);
|
||||
_closeAction.performed += OnClose;
|
||||
}
|
||||
|
||||
@ -189,7 +198,7 @@ namespace BlueWater.Titles
|
||||
}
|
||||
|
||||
_interactionEAction.performed -= OnInteractionE;
|
||||
_uiNavigationController.Disable();
|
||||
uiEventsController.DisableAutoNavigate();
|
||||
}
|
||||
|
||||
private string GetVersion()
|
||||
|
@ -92,7 +92,6 @@ namespace BlueWater.Uis
|
||||
|
||||
private void SetEmpty()
|
||||
{
|
||||
SetItemSprite(null);
|
||||
OrderCocktailData = null;
|
||||
_fillTween?.Kill();
|
||||
}
|
||||
@ -130,6 +129,16 @@ namespace BlueWater.Uis
|
||||
|
||||
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)
|
||||
{
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Npcs.Customers;
|
||||
using DG.Tweening;
|
||||
using TMPro;
|
||||
@ -50,6 +51,9 @@ namespace BlueWater
|
||||
[SerializeField]
|
||||
private Color _endColor = Color.red;
|
||||
|
||||
[SerializeField]
|
||||
private string resultSfxName = "BillResult";
|
||||
|
||||
public BillInfo CurrentBillInfo { get; private set; }
|
||||
|
||||
private Tween _sliderTween;
|
||||
@ -192,6 +196,7 @@ namespace BlueWater
|
||||
Debug.LogError("애니메이션 오류");
|
||||
}
|
||||
|
||||
AudioManager.Instance.PlaySfx(resultSfxName);
|
||||
_stampImageObject.SetActive(true);
|
||||
_sliderTween?.Kill();
|
||||
var isTrigger = false;
|
||||
|
@ -2,6 +2,7 @@ using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Npcs.Customers;
|
||||
using BlueWater.Utility;
|
||||
using Sirenix.OdinInspector;
|
||||
@ -19,6 +20,9 @@ namespace BlueWater.Uis
|
||||
[SerializeField]
|
||||
private SkeletonGraphic _chain;
|
||||
|
||||
[SerializeField]
|
||||
private string playChainSfxName = "PlayChain";
|
||||
|
||||
[Title("계산서")]
|
||||
[SerializeField]
|
||||
private Vector3 _spawnPosition;
|
||||
@ -100,6 +104,7 @@ namespace BlueWater.Uis
|
||||
|
||||
private void PlayChainAnimation()
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(playChainSfxName);
|
||||
_chain.AnimationState.SetAnimation(0, Move, true);
|
||||
_isMovedChain = true;
|
||||
}
|
||||
@ -132,6 +137,7 @@ namespace BlueWater.Uis
|
||||
yield return null;
|
||||
}
|
||||
|
||||
AudioManager.Instance.StopSfx(playChainSfxName);
|
||||
_chain.AnimationState.ClearTrack(0);
|
||||
_isMovedChain = 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.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Items;
|
||||
using BlueWater.Tycoons;
|
||||
using BlueWater.Utility;
|
||||
using Sirenix.OdinInspector;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
@ -12,6 +13,7 @@ using UnityEngine.InputSystem;
|
||||
using UnityEngine.Localization;
|
||||
using UnityEngine.Localization.Settings;
|
||||
using UnityEngine.ResourceManagement.AsyncOperations;
|
||||
using UnityEngine.Serialization;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BlueWater.Uis
|
||||
@ -24,45 +26,68 @@ namespace BlueWater.Uis
|
||||
[SerializeField]
|
||||
private TMP_Text _openManualKeyText;
|
||||
|
||||
[Title("선택된 칵테일")]
|
||||
[SerializeField]
|
||||
private Transform _cocktailButtons;
|
||||
|
||||
[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;
|
||||
|
||||
private TMP_Text _selectedCocktailName;
|
||||
|
||||
[SerializeField]
|
||||
private string _manualSfxName = "ManualBook";
|
||||
|
||||
private Image _selectedCocktailImage;
|
||||
|
||||
[SerializeField]
|
||||
private UiNavigationController _uiNavigationController;
|
||||
private TMP_Text _ratioRange;
|
||||
|
||||
[SerializeField]
|
||||
private TMP_Text _selectedCocktailDescription;
|
||||
|
||||
private List<ManualCocktailButton> _button;
|
||||
[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 ManualCocktailButton _selectedManualCocktailButton;
|
||||
private InputAction _openManualBookAction;
|
||||
private InputAction _pressQAction;
|
||||
private InputAction _cancelAction;
|
||||
|
||||
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()
|
||||
{
|
||||
_openManualBookAction = PlayerInputKeyManager.Instance.GetAction(InputActionMaps.Tycoon, TycoonActions.OpenManualBook);
|
||||
@ -74,86 +99,8 @@ namespace BlueWater.Uis
|
||||
|
||||
_openManualBookAction.performed += OnOpen;
|
||||
|
||||
var allCocktails = ItemManager.Instance.CocktailDataSo.GetData();
|
||||
_button = new List<ManualCocktailButton>(allCocktails.Count);
|
||||
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;
|
||||
uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
|
||||
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
@ -178,7 +125,14 @@ namespace BlueWater.Uis
|
||||
|
||||
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);
|
||||
_panel.SetActive(true);
|
||||
IsOpened = true;
|
||||
AudioManager.Instance.PlaySfx(_manualSfxName, ignoreTimeScale: true);
|
||||
EventSystem.current.SetSelectedGameObject(_uiNavigationController.SelectObject);
|
||||
AudioManager.Instance.PlaySfx(_openManualSfxName, ignoreTimeScale: true);
|
||||
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
|
||||
}
|
||||
|
||||
public void OnClose(InputAction.CallbackContext context)
|
||||
@ -207,7 +161,7 @@ namespace BlueWater.Uis
|
||||
|
||||
public override void Close()
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_manualSfxName, ignoreTimeScale: true);
|
||||
AudioManager.Instance.PlaySfx(_closeManualSfxName, ignoreTimeScale: true);
|
||||
_panel.SetActive(false);
|
||||
PopupUiController.UnregisterPopup(this);
|
||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||
@ -219,12 +173,12 @@ namespace BlueWater.Uis
|
||||
{
|
||||
_pressQAction.performed += OnClose;
|
||||
_cancelAction.performed += OnClose;
|
||||
_uiNavigationController.Enable();
|
||||
uiEventsController.EnableAutoNavigate();
|
||||
}
|
||||
|
||||
public override void DisableInput()
|
||||
{
|
||||
_uiNavigationController.Disable();
|
||||
uiEventsController.DisableAutoNavigate();
|
||||
_pressQAction.performed -= OnClose;
|
||||
_cancelAction.performed -= OnClose;
|
||||
}
|
||||
@ -234,232 +188,106 @@ namespace BlueWater.Uis
|
||||
_openManualKeyText.text = bindingKey;
|
||||
}
|
||||
|
||||
private void SetNavigation()
|
||||
// private void SetNavigation()
|
||||
// {
|
||||
// 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;
|
||||
// }
|
||||
// }
|
||||
|
||||
public void SelectItem(CocktailRecipeButton cocktailRecipeButton)
|
||||
{
|
||||
int maxRow = 4;
|
||||
_selectedCocktailRecipeButton = cocktailRecipeButton;
|
||||
uiEventsController.SetSelectObject(_selectedCocktailRecipeButton.gameObject);
|
||||
|
||||
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
||||
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite;
|
||||
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}%";
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
|
||||
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
|
||||
|
||||
for (int i = 0; i < _button.Count; i++)
|
||||
List<CocktailIngredient> validIngredients = _selectedCocktailRecipeButton.CocktailData.ValidIngredients;
|
||||
|
||||
for (int i = 0; i < _craftingIngredients.Count; i++)
|
||||
{
|
||||
Navigation navigation = _button[i].Button.navigation;
|
||||
navigation.mode = Navigation.Mode.Explicit;
|
||||
|
||||
// 좌측 네비게이션 설정
|
||||
if (i % maxRow != 0)
|
||||
if (i >= validIngredients.Count)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
_craftingIngredients[i].Hide();
|
||||
}
|
||||
else
|
||||
{
|
||||
slot01.gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
if (!checkSlot2)
|
||||
{
|
||||
slot02.gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
slot02.gameObject.SetActive(true);
|
||||
}
|
||||
|
||||
if (!checkSlot3)
|
||||
{
|
||||
slot03.gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
slot03.gameObject.SetActive(true);
|
||||
_craftingIngredients[i].Initialize(validIngredients[i], i);
|
||||
_craftingIngredients[i].Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
[SerializeField]
|
||||
private string _openSfxName = "RareRewardBox";
|
||||
private string _openSfxName = "OpenRareRewardBox";
|
||||
|
||||
[SerializeField]
|
||||
private Button allOpenCardButton;
|
||||
@ -61,8 +61,8 @@ namespace BlueWater.Uis
|
||||
|
||||
public override void Open()
|
||||
{
|
||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||
PopupUiController.RegisterPopup(this);
|
||||
_panel.SetActive(true);
|
||||
@ -70,7 +70,6 @@ namespace BlueWater.Uis
|
||||
|
||||
allOpenCardButton.gameObject.SetActive(true);
|
||||
closeButton.gameObject.SetActive(false);
|
||||
EventSystem.current.SetSelectedGameObject(allOpenCardButton.gameObject);
|
||||
}
|
||||
|
||||
public override void Close()
|
||||
|
@ -1,7 +1,7 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Npcs.Customers;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Tycoons;
|
||||
using BlueWater.Utility;
|
||||
using UnityEngine;
|
||||
@ -188,6 +188,9 @@ namespace BlueWater.Uis
|
||||
|
||||
[SerializeField]
|
||||
private float _totalGoldDuration = 1f;
|
||||
|
||||
[Title("사운드")]
|
||||
private string _bgmName = "TycoonResult";
|
||||
|
||||
private Coroutine _showResultInstance;
|
||||
private InputAction _pressAnyKeyAction;
|
||||
@ -252,6 +255,7 @@ namespace BlueWater.Uis
|
||||
[Button("결과 연출 테스트")]
|
||||
public override void Open()
|
||||
{
|
||||
AudioManager.Instance.PlayBgm(_bgmName);
|
||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||
PopupUiController.RegisterPopup(this);
|
||||
@ -417,7 +421,12 @@ namespace BlueWater.Uis
|
||||
_tipGainedText.text = _tipGained.ToString("N0");
|
||||
_goldSpentText.text = _goldSpent.ToString("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("결과 즉시 테스트")]
|
||||
|
@ -1,5 +1,6 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using BlueWater.Audios;
|
||||
using BlueWater.Tycoons;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
@ -15,6 +16,9 @@ namespace BlueWater.Uis
|
||||
|
||||
[SerializeField]
|
||||
private Transform _contents;
|
||||
|
||||
[SerializeField]
|
||||
private string _openSfxName = "OpenNormalRewardBox";
|
||||
|
||||
private List<TycoonCard> _tycoonCards = new(3);
|
||||
|
||||
@ -39,6 +43,7 @@ namespace BlueWater.Uis
|
||||
|
||||
public override void Open()
|
||||
{
|
||||
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||
PopupUiController.RegisterPopup(this);
|
||||
|
@ -1,3 +1,4 @@
|
||||
using System.Threading.Tasks;
|
||||
using BlueWater.Audios;
|
||||
using DG.Tweening;
|
||||
using Sirenix.OdinInspector;
|
||||
|
@ -8,6 +8,8 @@ using DG.Tweening;
|
||||
using UnityEngine;
|
||||
using Sirenix.OdinInspector;
|
||||
using TMPro;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BlueWater.Uis
|
||||
{
|
||||
@ -27,6 +29,9 @@ namespace BlueWater.Uis
|
||||
|
||||
[SerializeField]
|
||||
private Transform _contents;
|
||||
|
||||
[SerializeField]
|
||||
private Button _purchaseCompletedButton;
|
||||
|
||||
[SerializeField]
|
||||
private Vector3 _cardLocalScale = new(0.65f, 0.65f, 1f);
|
||||
@ -99,6 +104,11 @@ namespace BlueWater.Uis
|
||||
}
|
||||
else
|
||||
{
|
||||
while (!PlayerInputKeyManager.Instance.IsInitialized)
|
||||
{
|
||||
await Task.Delay(100);
|
||||
}
|
||||
|
||||
EventManager.InvokeTycoonGameStarted();
|
||||
}
|
||||
}
|
||||
@ -117,13 +127,19 @@ namespace BlueWater.Uis
|
||||
IsOpened = true;
|
||||
}
|
||||
|
||||
public override void Close()
|
||||
public override async void Close()
|
||||
{
|
||||
_panel.SetActive(false);
|
||||
PopupUiController.UnregisterPopup(this);
|
||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.Tycoon);
|
||||
IsOpened = false;
|
||||
VisualFeedbackManager.Instance.ResetTimeScale();
|
||||
|
||||
while (!PlayerInputKeyManager.Instance.IsInitialized)
|
||||
{
|
||||
await Task.Delay(100);
|
||||
}
|
||||
|
||||
EventManager.InvokeTycoonGameStarted();
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
using System.Collections.Generic;
|
||||
using DG.Tweening;
|
||||
using Sirenix.OdinInspector;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BlueWater.Uis
|
||||
@ -18,6 +20,16 @@ namespace BlueWater.Uis
|
||||
|
||||
[SerializeField]
|
||||
private Image _fadeImage;
|
||||
|
||||
[Title("테스트")]
|
||||
[SerializeField]
|
||||
private bool _isUiClickTest;
|
||||
|
||||
[SerializeField]
|
||||
private GraphicRaycaster _raycaster;
|
||||
|
||||
[SerializeField]
|
||||
private EventSystem _eventSystem;
|
||||
|
||||
#endregion
|
||||
|
||||
@ -33,6 +45,46 @@ namespace BlueWater.Uis
|
||||
{
|
||||
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()
|
||||
{
|
||||
|
@ -5,7 +5,7 @@ using UnityEngine.InputSystem.UI;
|
||||
|
||||
namespace BlueWater
|
||||
{
|
||||
public class UiNavigationController: MonoBehaviour
|
||||
public class UiEventsController: MonoBehaviour
|
||||
{
|
||||
[field: SerializeField]
|
||||
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;
|
||||
_inputModule.move.action.performed += OnNavigate;
|
||||
}
|
||||
|
||||
public void Enable()
|
||||
public void EnableAutoNavigate()
|
||||
{
|
||||
_inputModule.move.action.performed += OnNavigate;
|
||||
}
|
||||
|
||||
public void Disable()
|
||||
public void DisableAutoNavigate()
|
||||
{
|
||||
_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
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteMode: 2
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 1024
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
@ -93,9 +93,57 @@ TextureImporter:
|
||||
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: []
|
||||
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: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
@ -109,7 +157,8 @@ TextureImporter:
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
nameFileIdTable:
|
||||
DrinkExplain1_0: 1581558198
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
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:
|