0.3.5.11
This commit is contained in:
parent
49321522f6
commit
8e7b32d0f0
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,11 @@
|
|||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
|
||||||
namespace BlueWater.Npcs.Customers
|
namespace BlueWater.Npcs.Customers
|
||||||
{
|
{
|
||||||
public class VomitState : IStateMachine<Customer>
|
public class VomitState : IStateMachine<Customer>
|
||||||
{
|
{
|
||||||
|
private string _vomitSfxName = "Vomit";
|
||||||
private bool _isVomiting;
|
private bool _isVomiting;
|
||||||
|
|
||||||
public void EnterState(Customer character)
|
public void EnterState(Customer character)
|
||||||
@ -13,8 +15,9 @@ namespace BlueWater.Npcs.Customers
|
|||||||
|
|
||||||
public void UpdateState(Customer character)
|
public void UpdateState(Customer character)
|
||||||
{
|
{
|
||||||
if (character.SpineController.IsAnimationComplete())
|
if (!_isVomiting && character.SpineController.IsAnimationComplete())
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_vomitSfxName);
|
||||||
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
character.SpineController.PlayAnimation(CustomerSpineAnimation.Vomiting, false);
|
||||||
_isVomiting = true;
|
_isVomiting = true;
|
||||||
}
|
}
|
||||||
|
@ -10,9 +10,6 @@ namespace BlueWater.Players
|
|||||||
public class PlayerHealthPoint : MonoBehaviour, IDamageable
|
public class PlayerHealthPoint : MonoBehaviour, IDamageable
|
||||||
{
|
{
|
||||||
// Components
|
// Components
|
||||||
[SerializeField]
|
|
||||||
private SpriteRenderer _spriteRenderer;
|
|
||||||
|
|
||||||
private IDashable _dashable;
|
private IDashable _dashable;
|
||||||
private ISkillHandler _skillHandler;
|
private ISkillHandler _skillHandler;
|
||||||
|
|
||||||
@ -29,9 +26,22 @@ namespace BlueWater.Players
|
|||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public bool IsInvincible { get; private set; }
|
public bool IsInvincible { get; private set; }
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private bool _isShaking;
|
||||||
|
|
||||||
|
[SerializeField, ShowIf("@_isShaking")]
|
||||||
|
private float _shakingPower = 0.5f;
|
||||||
|
|
||||||
|
[SerializeField, ShowIf("@_isShaking")]
|
||||||
|
private float _shakingDuration = 0.1f;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string attackedSfxName = "CombatPlayerAttacked";
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string heartRecoverySfxName;
|
private string heartRecoverySfxName;
|
||||||
|
|
||||||
|
private Material _materialInstance;
|
||||||
private WaitForSeconds _flashWhiteWaitTime;
|
private WaitForSeconds _flashWhiteWaitTime;
|
||||||
private Coroutine _flashWhiteCoroutine;
|
private Coroutine _flashWhiteCoroutine;
|
||||||
private Coroutine _damageIntervalCoroutine;
|
private Coroutine _damageIntervalCoroutine;
|
||||||
@ -55,8 +65,6 @@ namespace BlueWater.Players
|
|||||||
[Button("컴포넌트 초기화")]
|
[Button("컴포넌트 초기화")]
|
||||||
private void InitializeComponents()
|
private void InitializeComponents()
|
||||||
{
|
{
|
||||||
_spriteRenderer = GetComponentInChildren<SpriteRenderer>();
|
|
||||||
|
|
||||||
_dashable = GetComponent<IDashable>();
|
_dashable = GetComponent<IDashable>();
|
||||||
_skillHandler = GetComponent<ISkillHandler>();
|
_skillHandler = GetComponent<ISkillHandler>();
|
||||||
}
|
}
|
||||||
@ -106,12 +114,17 @@ namespace BlueWater.Players
|
|||||||
return !isDashing && !isActivatingSkill;
|
return !isDashing && !isActivatingSkill;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Button("데미지 테스트")]
|
||||||
public void TakeDamage(int damageAmount)
|
public void TakeDamage(int damageAmount)
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(attackedSfxName);
|
||||||
IsInvincible = true;
|
IsInvincible = true;
|
||||||
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
|
var changeHp = Mathf.Max(CurrentHealthPoint - damageAmount, 0);
|
||||||
SetCurrentHealthPoint(changeHp);
|
SetCurrentHealthPoint(changeHp);
|
||||||
AudioManager.Instance.PlaySfx("CombatPlayerAttacked");
|
if (_isShaking)
|
||||||
|
{
|
||||||
|
VisualFeedbackManager.Instance.CameraShake(TycoonCameraManager.Instance.BaseCamera, _shakingPower, _shakingDuration);
|
||||||
|
}
|
||||||
|
|
||||||
// 죽었는지 체크
|
// 죽었는지 체크
|
||||||
if (changeHp == 0f)
|
if (changeHp == 0f)
|
||||||
@ -120,7 +133,7 @@ namespace BlueWater.Players
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_spriteRenderer.material.HasInt(IsHitHash))
|
if (_materialInstance.HasInt(IsHitHash))
|
||||||
{
|
{
|
||||||
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
Utils.StartUniqueCoroutine(this, ref _flashWhiteCoroutine, FlashWhiteCoroutine());
|
||||||
}
|
}
|
||||||
@ -143,9 +156,9 @@ namespace BlueWater.Players
|
|||||||
{
|
{
|
||||||
for (var i = 0; i < 5; i++)
|
for (var i = 0; i < 5; i++)
|
||||||
{
|
{
|
||||||
_spriteRenderer.material.SetInt(IsHitHash, 1);
|
_materialInstance.SetInt(IsHitHash, 1);
|
||||||
yield return _flashWhiteWaitTime;
|
yield return _flashWhiteWaitTime;
|
||||||
_spriteRenderer.material.SetInt(IsHitHash, 0);
|
_materialInstance.SetInt(IsHitHash, 0);
|
||||||
yield return _flashWhiteWaitTime;
|
yield return _flashWhiteWaitTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,5 +173,6 @@ namespace BlueWater.Players
|
|||||||
|
|
||||||
public void ActivateInvincibility() => IsInvincible = true;
|
public void ActivateInvincibility() => IsInvincible = true;
|
||||||
public void DeactivateInvincibility() => IsInvincible = false;
|
public void DeactivateInvincibility() => IsInvincible = false;
|
||||||
|
public void SetMaterialInstance(Material materialInstance) => _materialInstance = materialInstance;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -5,7 +5,6 @@ using BlueWater.Uis;
|
|||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using Spine.Unity;
|
using Spine.Unity;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.InputSystem;
|
|
||||||
|
|
||||||
namespace BlueWater.Players.Tycoons
|
namespace BlueWater.Players.Tycoons
|
||||||
{
|
{
|
||||||
@ -67,6 +66,8 @@ namespace BlueWater.Players.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Vector3 _offset = new(0f, 1.5f, 0f);
|
private Vector3 _offset = new(0f, 1.5f, 0f);
|
||||||
|
|
||||||
|
public Material MaterialInstance { get; protected set; }
|
||||||
|
|
||||||
public bool IsCleaningFloor { get; set; }
|
public bool IsCleaningFloor { get; set; }
|
||||||
public bool IsCleaningTable { get; set; }
|
public bool IsCleaningTable { get; set; }
|
||||||
public bool IsCleaningMold { get; set; }
|
public bool IsCleaningMold { get; set; }
|
||||||
@ -108,6 +109,12 @@ namespace BlueWater.Players.Tycoons
|
|||||||
EventManager.OnPlaceOnServingTable += PlaceOnServingTable;
|
EventManager.OnPlaceOnServingTable += PlaceOnServingTable;
|
||||||
|
|
||||||
TycoonMovement.OnSucceedDash += DashSucceed;
|
TycoonMovement.OnSucceedDash += DashSucceed;
|
||||||
|
|
||||||
|
var originalMaterial = SpineController.SkeletonAnimation.SkeletonDataAsset.atlasAssets[0].PrimaryMaterial;
|
||||||
|
var newMaterial = SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial];
|
||||||
|
MaterialInstance = Instantiate(newMaterial);
|
||||||
|
SpineController.SkeletonAnimation.CustomMaterialOverride[originalMaterial] = MaterialInstance;
|
||||||
|
PlayerHealthPoint.SetMaterialInstance(MaterialInstance);
|
||||||
|
|
||||||
IdleState = new IdleState();
|
IdleState = new IdleState();
|
||||||
WalkingState = new WalkingState();
|
WalkingState = new WalkingState();
|
||||||
@ -167,7 +174,10 @@ namespace BlueWater.Players.Tycoons
|
|||||||
|
|
||||||
private void Die()
|
private void Die()
|
||||||
{
|
{
|
||||||
int saveGold = Mathf.RoundToInt(TycoonManager.Instance.TycoonStatus.CurrentGold * TycoonManager.Instance.TycoonStatus.EndGoldMultiplier);
|
int currentGold = TycoonManager.Instance.TycoonStatus.CurrentGold;
|
||||||
|
float endGoldMultiplier = -0.5f + TycoonManager.Instance.TycoonStatus.EndGoldMultiplier;
|
||||||
|
int addedGold = Mathf.RoundToInt(currentGold * endGoldMultiplier);
|
||||||
|
int saveGold = currentGold + addedGold;
|
||||||
ES3.Save(SaveData.EndGold, saveGold);
|
ES3.Save(SaveData.EndGold, saveGold);
|
||||||
ES3.Save(SaveData.CompleteFirstGame, true);
|
ES3.Save(SaveData.CompleteFirstGame, true);
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ using BlueWater.Interfaces;
|
|||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Npcs.Customers;
|
using BlueWater.Npcs.Customers;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -202,23 +203,28 @@ namespace BlueWater.Editors
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 새로운 데이터를 기존 데이터에 덮어쓰거나 추가
|
// 새로운 데이터를 처리
|
||||||
foreach (var newDataItem in newData)
|
foreach (var newDataItem in newData)
|
||||||
{
|
{
|
||||||
if (newDataItem == null || newDataItem.Value == null) continue;
|
if (newDataItem == null || newDataItem.Value == null) continue;
|
||||||
|
|
||||||
if (existingDataDict.TryGetValue(newDataItem.Key, out var existingItem))
|
if (existingDataDict.TryGetValue(newDataItem.Key, out var existingItem))
|
||||||
{
|
{
|
||||||
|
// 기존 데이터가 있으면 업데이트
|
||||||
var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
|
var properties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
|
||||||
foreach (var property in properties)
|
foreach (var property in properties)
|
||||||
{
|
{
|
||||||
var newValue = property.GetValue(newDataItem.Value);
|
// JSON 데이터에서 덮어쓸 프로퍼티만 처리
|
||||||
var existingValue = property.GetValue(existingItem.Value);
|
if (property.GetCustomAttribute<JsonPropertyAttribute>() != null)
|
||||||
|
|
||||||
// 덮어쓰기 조건 (참조 타입이거나, 값 타입이 기본값이 아닌 경우에만 덮어씀)
|
|
||||||
if (ShouldOverwriteProperty(newValue, existingValue, property))
|
|
||||||
{
|
{
|
||||||
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.Clear();
|
||||||
existingData.AddRange(existingDataDict.Values);
|
existingData.AddRange(existingDataDict.Values);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using Sirenix.Utilities;
|
using Sirenix.Utilities;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -11,42 +12,55 @@ namespace BlueWater.Items
|
|||||||
public class CocktailData : IPickup
|
public class CocktailData : IPickup
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("오차 범위"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("오차 범위"), BoxGroup("Json 데이터 영역")]
|
||||||
public int RatioRange { get; set; }
|
public int RatioRange { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("1번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx1 { get; set; }
|
public string IngredientIdx1 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("1번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio1 { get; set; }
|
public int IngredientRatio1 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("2번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx2 { get; set; }
|
public string IngredientIdx2 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("2번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio2 { get; set; }
|
public int IngredientRatio2 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("3번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx3 { get; set; }
|
public string IngredientIdx3 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("3번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio3 { get; set; }
|
public int IngredientRatio3 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("4번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx4 { get; set; }
|
public string IngredientIdx4 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("4번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio4 { get; set; }
|
public int IngredientRatio4 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("5번 재료 식별 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string IngredientIdx5 { get; set; }
|
public string IngredientIdx5 { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("5번 재료 수량 Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public int IngredientRatio5 { get; set; }
|
public int IngredientRatio5 { get; set; }
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -16,15 +17,19 @@ namespace BlueWater.Items
|
|||||||
public class LiquidData : IIdx
|
public class LiquidData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("종류"), BoxGroup("Json 데이터 영역")]
|
||||||
public LiquidType Type { get; set; }
|
public LiquidType Type { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("총량"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Amount { get; set; }
|
public int Amount { get; set; }
|
||||||
|
|
||||||
|
@ -38,27 +38,35 @@ namespace BlueWater.Items
|
|||||||
public class ItemData : IPickup
|
public class ItemData : IPickup
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("고유 식별 ID"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("이름"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("아이템 종류"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("아이템 종류"), BoxGroup("Json 데이터 영역")]
|
||||||
public ItemType Type { get; set; }
|
public ItemType Type { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("재료 종류"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("재료 종류"), BoxGroup("Json 데이터 영역")]
|
||||||
public IngredientType IngredientType { get; set; }
|
public IngredientType IngredientType { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("아이템 품질"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("아이템 품질"), BoxGroup("Json 데이터 영역")]
|
||||||
public ItemQuality Quality { get; set; }
|
public ItemQuality Quality { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Price { get; set; }
|
public int Price { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("무게"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("무게"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Weight { get; set; }
|
public int Weight { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("설명"), TextArea(3, 10), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("설명"), TextArea(3, 10), BoxGroup("Json 데이터 영역")]
|
||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -54,6 +55,9 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private float _playerHoldingTime = 3f;
|
private float _playerHoldingTime = 3f;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _attackMoldSfxName = "AttackMold";
|
||||||
|
|
||||||
private bool _isPlayerInteracting;
|
private bool _isPlayerInteracting;
|
||||||
private int _currentLevel;
|
private int _currentLevel;
|
||||||
@ -121,6 +125,7 @@ namespace BlueWater.Tycoons
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_attackMoldSfxName, true);
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = true;
|
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = true;
|
||||||
_isPlayerInteracting = true;
|
_isPlayerInteracting = true;
|
||||||
}
|
}
|
||||||
@ -135,6 +140,7 @@ namespace BlueWater.Tycoons
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.StopSfx(_attackMoldSfxName);
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = false;
|
GameManager.Instance.CurrentTycoonPlayer.IsCleaningMold = false;
|
||||||
_isPlayerInteracting = false;
|
_isPlayerInteracting = false;
|
||||||
HoldingElapsedTime = 0f;
|
HoldingElapsedTime = 0f;
|
||||||
@ -373,21 +379,27 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel0, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel0, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel0, false);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel1, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel1, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel1, false);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel2, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel2, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel2, false);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel3, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel3, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel3, false);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel4, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel4, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel4, false);
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel5, false);
|
SpineController.PlayAnimation(LiquidBarrelSpineAnimation.ChangeCleanLevel5, false);
|
||||||
|
SpineController.AddAnimation(LiquidBarrelSpineAnimation.IdleLevel5, false);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new Exception("_currentLevel 존재하지 않는 값");
|
throw new Exception("_currentLevel 존재하지 않는 값");
|
||||||
|
@ -1,10 +1,17 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Players;
|
using BlueWater.Players;
|
||||||
using BlueWater.Uis;
|
using BlueWater.Uis;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace BlueWater.Tycoons
|
namespace BlueWater.Tycoons
|
||||||
{
|
{
|
||||||
|
public static class PumpSpineAnimation
|
||||||
|
{
|
||||||
|
public const string Idle = "Idle";
|
||||||
|
public const string Run = "Run";
|
||||||
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class Pump : InteractionFurniture
|
public class Pump : InteractionFurniture
|
||||||
{
|
{
|
||||||
@ -23,6 +30,12 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField, Range(0, 1000)]
|
[SerializeField, Range(0, 1000)]
|
||||||
private int addedLiquid = 400;
|
private int addedLiquid = 400;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _attackSfxName = "AttackWhip";
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _playPumpSfxName = "PlayPump";
|
||||||
|
|
||||||
private bool _isPlayerInteracting;
|
private bool _isPlayerInteracting;
|
||||||
|
|
||||||
protected override void Awake()
|
protected override void Awake()
|
||||||
@ -36,7 +49,7 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
base.Start();
|
base.Start();
|
||||||
|
|
||||||
_spineController.PlayAnimation("Idle", true);
|
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
@ -72,16 +85,20 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
public override void Interaction()
|
public override void Interaction()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_attackSfxName, true);
|
||||||
|
AudioManager.Instance.PlaySfx(_playPumpSfxName, true);
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsPumping = true;
|
GameManager.Instance.CurrentTycoonPlayer.IsPumping = true;
|
||||||
_isPlayerInteracting = true;
|
_isPlayerInteracting = true;
|
||||||
_spineController.PlayAnimation("Run", true);
|
_spineController.PlayAnimation(PumpSpineAnimation.Run, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void CancelInteraction()
|
public override void CancelInteraction()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.StopSfx(_attackSfxName);
|
||||||
|
AudioManager.Instance.StopSfx(_playPumpSfxName);
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsPumping = false;
|
GameManager.Instance.CurrentTycoonPlayer.IsPumping = false;
|
||||||
_isPlayerInteracting = false;
|
_isPlayerInteracting = false;
|
||||||
_spineController.PlayAnimation("Idle", true);
|
_spineController.PlayAnimation(PumpSpineAnimation.Idle, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool CanInteraction()
|
public override bool CanInteraction()
|
||||||
|
@ -9,6 +9,7 @@ namespace BlueWater.Tycoons
|
|||||||
[Serializable]
|
[Serializable]
|
||||||
public class RewardBox : InteractionFurniture
|
public class RewardBox : InteractionFurniture
|
||||||
{
|
{
|
||||||
|
[Title("참조")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private AnimationController _animationController;
|
private AnimationController _animationController;
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Npcs.Crews;
|
using BlueWater.Npcs.Crews;
|
||||||
@ -16,6 +17,9 @@ namespace BlueWater.Tycoons
|
|||||||
[FormerlySerializedAs("_cocktailGlassImage")]
|
[FormerlySerializedAs("_cocktailGlassImage")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
protected SpriteRenderer CocktailGlassImage;
|
protected SpriteRenderer CocktailGlassImage;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _putDownSfxName = "PutDownCocktail";
|
||||||
|
|
||||||
// 서빙 테이블 기준 아이템이 있는지 없는지
|
// 서빙 테이블 기준 아이템이 있는지 없는지
|
||||||
private IPickup _currentPickupItem;
|
private IPickup _currentPickupItem;
|
||||||
@ -78,6 +82,7 @@ namespace BlueWater.Tycoons
|
|||||||
// 테이블에 칵테일을 놓는 경우
|
// 테이블에 칵테일을 놓는 경우
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_putDownSfxName);
|
||||||
CurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
|
CurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
|
||||||
CocktailGlassImage.sprite = CurrentPickupItem.Sprite;
|
CocktailGlassImage.sprite = CurrentPickupItem.Sprite;
|
||||||
CocktailGlassImage.enabled = true;
|
CocktailGlassImage.enabled = true;
|
||||||
|
@ -122,11 +122,8 @@ namespace BlueWater.Tycoons
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_isCrewInteracting)
|
OnInteractionCompleted?.Invoke();
|
||||||
{
|
OnInteractionCompleted = null;
|
||||||
OnInteractionCompleted?.Invoke();
|
|
||||||
OnInteractionCompleted = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
EventManager.InvokeCleaningResult(true);
|
EventManager.InvokeCleaningResult(true);
|
||||||
CleanTable();
|
CleanTable();
|
||||||
@ -222,7 +219,7 @@ namespace BlueWater.Tycoons
|
|||||||
_currentLevelData = TycoonManager.Instance.GetCurrentLevelData();
|
_currentLevelData = TycoonManager.Instance.GetCurrentLevelData();
|
||||||
Food.sprite = _emptyBeerGlass;
|
Food.sprite = _emptyBeerGlass;
|
||||||
Food.enabled = true;
|
Food.enabled = true;
|
||||||
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Cleaning, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.DirtyTableWaitTime);
|
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.DirtyTableWaitTime);
|
||||||
IsCleaned = false;
|
IsCleaned = false;
|
||||||
|
|
||||||
var crewController = TycoonManager.Instance.CrewController;
|
var crewController = TycoonManager.Instance.CrewController;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using BlueWater.Audios;
|
using BlueWater.Audios;
|
||||||
|
using BlueWater.Interfaces;
|
||||||
using BlueWater.Items;
|
using BlueWater.Items;
|
||||||
using BlueWater.Players;
|
using BlueWater.Players;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -199,10 +200,17 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
private void ChangeRandomCocktail()
|
private void ChangeRandomCocktail()
|
||||||
{
|
{
|
||||||
var randomCocktail = TycoonManager.Instance.TycoonIngredientController.GetRandomCocktailData();
|
IPickup playerCurrentPickupItem = CurrentTycoonPlayer.TycoonPickupHandler.CurrentPickupItem;
|
||||||
|
if (playerCurrentPickupItem != null)
|
||||||
|
{
|
||||||
|
CocktailData discardCocktailData = ItemManager.Instance.CocktailDataSo.GetDataByIdx(playerCurrentPickupItem.Idx);
|
||||||
|
EventManager.InvokeCocktailServedToCustomer(discardCocktailData, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
CocktailData randomCocktail = TycoonManager.Instance.TycoonIngredientController.GetRandomCocktailData();
|
||||||
EventManager.InvokeChangedRandomCocktail(randomCocktail);
|
EventManager.InvokeChangedRandomCocktail(randomCocktail);
|
||||||
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Waiting, 0,
|
EventManager.InvokeCocktailCompleted(randomCocktail, false);
|
||||||
TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
|
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.RandomChangeWaitTime);
|
||||||
|
|
||||||
HoldingElapsedTime = 0f;
|
HoldingElapsedTime = 0f;
|
||||||
_canInteraction = false;
|
_canInteraction = false;
|
||||||
|
@ -102,7 +102,7 @@ namespace BlueWater.Tycoons
|
|||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
InteractionCanvas.BalloonUi.OrderItem(DataManager.Instance.SpriteDataSo.Cleaning, 0, TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingWaitTime);
|
InteractionCanvas.BalloonUi.OrderItem(0, TycoonManager.Instance.TycoonStageController.StageDataSo.VomitingWaitTime);
|
||||||
var crewController = TycoonManager.Instance.CrewController;
|
var crewController = TycoonManager.Instance.CrewController;
|
||||||
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
|
Utils.StartUniqueCoroutine(this, ref _findCleanerCrewInstance,
|
||||||
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
|
crewController.FindClosestCrewCoroutine(CenterTransform.position, crewController.CleanerCrews, crew => crew.OnMission(this)));
|
||||||
@ -134,11 +134,9 @@ namespace BlueWater.Tycoons
|
|||||||
{
|
{
|
||||||
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
|
GameManager.Instance.CurrentTycoonPlayer.IsCleaningFloor = false;
|
||||||
}
|
}
|
||||||
if (_isCrewInteracting)
|
|
||||||
{
|
OnInteractionCompleted?.Invoke();
|
||||||
OnInteractionCompleted?.Invoke();
|
OnInteractionCompleted = null;
|
||||||
OnInteractionCompleted = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
Destroy(gameObject);
|
Destroy(gameObject);
|
||||||
}
|
}
|
||||||
|
@ -91,7 +91,21 @@ MonoBehaviour:
|
|||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 9778d97789d1ea245a9d31c2ff915bb7, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 9778d97789d1ea245a9d31c2ff915bb7, type: 3}
|
||||||
- <SfxName>k__BackingField: GainGold
|
- <SfxName>k__BackingField: GainGold
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: f556df27b6add5a49979cc7a158f6110, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: f556df27b6add5a49979cc7a158f6110, type: 3}
|
||||||
- <SfxName>k__BackingField: RareRewardBox
|
- <SfxName>k__BackingField: OpenNormalRewardBox
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 92cf41edb5694a04eb27847dae1b337f, type: 3}
|
||||||
|
- <SfxName>k__BackingField: OpenRareRewardBox
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 3f98ecaf35492e744bb4dc943e1a39b1, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 3f98ecaf35492e744bb4dc943e1a39b1, type: 3}
|
||||||
- <SfxName>k__BackingField: SelectedButton01
|
- <SfxName>k__BackingField: SelectedButton01
|
||||||
<Clip>k__BackingField: {fileID: 8300000, guid: 80adc41542bc901439938907231717a8, type: 3}
|
<Clip>k__BackingField: {fileID: 8300000, guid: 80adc41542bc901439938907231717a8, type: 3}
|
||||||
|
- <SfxName>k__BackingField: PlayChain
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 2374925c2e5dd7e47bc214461e4b329d, type: 3}
|
||||||
|
- <SfxName>k__BackingField: Vomit
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: a2bebee4126e87746b5fc1a514ceb4a0, type: 3}
|
||||||
|
- <SfxName>k__BackingField: PlayPump
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: b532d80acad8e6e4e85dbca6096b071e, type: 3}
|
||||||
|
- <SfxName>k__BackingField: AttackWhip
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: d4b4534edc51fb141860a1b599eb6e53, type: 3}
|
||||||
|
- <SfxName>k__BackingField: PutDownCocktail
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 0320fecde5b376f46a0ff9904e17fbc3, type: 3}
|
||||||
|
- <SfxName>k__BackingField: AttackMold
|
||||||
|
<Clip>k__BackingField: {fileID: 8300000, guid: 603fde43ec110ee42bf61c41ca21a1fb, type: 3}
|
||||||
|
@ -20,7 +20,7 @@ MonoBehaviour:
|
|||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 99999
|
<Amount>k__BackingField: 99999
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: a8c45767f0a3ec245a47087c7ada2b50, type: 3}
|
||||||
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
|
<Color>k__BackingField: {r: 0.8018868, g: 0, b: 0.024826864, a: 1}
|
||||||
- <Key>k__BackingField: LiquidB
|
- <Key>k__BackingField: LiquidB
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidB
|
<Idx>k__BackingField: LiquidB
|
||||||
@ -28,7 +28,7 @@ MonoBehaviour:
|
|||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 216cb30d7010e95499c22161ccfde634, type: 3}
|
||||||
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
|
<Color>k__BackingField: {r: 0.12156863, g: 1, b: 0, a: 1}
|
||||||
- <Key>k__BackingField: LiquidC
|
- <Key>k__BackingField: LiquidC
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidC
|
<Idx>k__BackingField: LiquidC
|
||||||
@ -36,7 +36,7 @@ MonoBehaviour:
|
|||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 404e93e2e77f60b49bbcbf1df18904d3, type: 3}
|
||||||
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
|
<Color>k__BackingField: {r: 0, g: 0.23921569, b: 1, a: 1}
|
||||||
- <Key>k__BackingField: LiquidD
|
- <Key>k__BackingField: LiquidD
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidD
|
<Idx>k__BackingField: LiquidD
|
||||||
@ -44,7 +44,7 @@ MonoBehaviour:
|
|||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: a575a803ef0529e43bcbbe8ccdbb34b2, type: 3}
|
||||||
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
|
<Color>k__BackingField: {r: 1, g: 0, b: 0.6666667, a: 1}
|
||||||
- <Key>k__BackingField: LiquidE
|
- <Key>k__BackingField: LiquidE
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: LiquidE
|
<Idx>k__BackingField: LiquidE
|
||||||
@ -52,7 +52,7 @@ MonoBehaviour:
|
|||||||
<Type>k__BackingField: 1
|
<Type>k__BackingField: 1
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 2fc24dca6ce6ac94da0187dfce24fa3a, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 2fc24dca6ce6ac94da0187dfce24fa3a, type: 3}
|
||||||
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
|
<Color>k__BackingField: {r: 0.9843137, g: 1, b: 0, a: 1}
|
||||||
- <Key>k__BackingField: Garnish1
|
- <Key>k__BackingField: Garnish1
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: Garnish1
|
<Idx>k__BackingField: Garnish1
|
||||||
@ -60,7 +60,7 @@ MonoBehaviour:
|
|||||||
<Type>k__BackingField: 2
|
<Type>k__BackingField: 2
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: ddde5976023f9be4e83dc3d867c2dc30, type: 3}
|
||||||
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
|
<Color>k__BackingField: {r: 0, g: 1, b: 1, a: 1}
|
||||||
- <Key>k__BackingField: Garnish2
|
- <Key>k__BackingField: Garnish2
|
||||||
<Value>k__BackingField:
|
<Value>k__BackingField:
|
||||||
<Idx>k__BackingField: Garnish2
|
<Idx>k__BackingField: Garnish2
|
||||||
@ -68,4 +68,4 @@ MonoBehaviour:
|
|||||||
<Type>k__BackingField: 2
|
<Type>k__BackingField: 2
|
||||||
<Amount>k__BackingField: 2000
|
<Amount>k__BackingField: 2000
|
||||||
<Sprite>k__BackingField: {fileID: 21300000, guid: 1506abfb2ff26fa4aacdeb4b0efc9663, type: 3}
|
<Sprite>k__BackingField: {fileID: 21300000, guid: 1506abfb2ff26fa4aacdeb4b0efc9663, type: 3}
|
||||||
<Color>k__BackingField: {r: 0, g: 0, b: 0, a: 0}
|
<Color>k__BackingField: {r: 0.5019608, g: 0, b: 1, a: 1}
|
||||||
|
@ -24,6 +24,6 @@ namespace BlueWater
|
|||||||
public Sprite Waiting { get; private set; }
|
public Sprite Waiting { get; private set; }
|
||||||
|
|
||||||
[field: SerializeField]
|
[field: SerializeField]
|
||||||
public Sprite Cleaning { get; private set; }
|
public Sprite Dirty { get; private set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,12 +10,15 @@ namespace BlueWater
|
|||||||
public class CardData : IIdx
|
public class CardData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Text"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Text"), BoxGroup("Json 데이터 영역")]
|
||||||
public string ScriptText { get; set; }
|
public string ScriptText { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("최대 값"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("최대 값"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Max { get; set; }
|
public int Max { get; set; }
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,9 +10,11 @@ namespace BlueWater
|
|||||||
public class CardNormalData : IIdx
|
public class CardNormalData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Ratio { get; set; }
|
public int Ratio { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,9 +10,11 @@ namespace BlueWater
|
|||||||
public class CardRareData : IIdx
|
public class CardRareData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Ratio { get; set; }
|
public int Ratio { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -9,12 +10,15 @@ namespace BlueWater
|
|||||||
public class CardShopData : IIdx
|
public class CardShopData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("Idx"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("확률"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Ratio { get; set; }
|
public int Ratio { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("가격"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Price { get; set; }
|
public int Price { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using BlueWater.Interfaces;
|
using BlueWater.Interfaces;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
@ -15,36 +16,47 @@ namespace BlueWater
|
|||||||
public class LevelData : IIdx
|
public class LevelData : IIdx
|
||||||
{
|
{
|
||||||
[BoxGroup("Json 데이터 영역")]
|
[BoxGroup("Json 데이터 영역")]
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("레벨"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("레벨"), BoxGroup("Json 데이터 영역")]
|
||||||
public string Idx { get; set; }
|
public string Idx { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("손님 재입장 시간"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("손님 재입장 시간"), BoxGroup("Json 데이터 영역")]
|
||||||
public int CustomerRespawn { get; set; }
|
public int CustomerRespawn { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("기본 골드량"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("기본 골드량"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Gold { get; set; }
|
public int Gold { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("기본 경험치량"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("기본 경험치량"), BoxGroup("Json 데이터 영역")]
|
||||||
public int Exp { get; set; }
|
public int Exp { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("레벨업 요구 경험치량"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("레벨업 요구 경험치량"), BoxGroup("Json 데이터 영역")]
|
||||||
public int RequiredExp { get; set; }
|
public int RequiredExp { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("얌전히 기다리는 시간"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("얌전히 기다리는 시간"), BoxGroup("Json 데이터 영역")]
|
||||||
public int WaitTime { get; set; }
|
public int WaitTime { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("재촉하는 시간 (게이지 활성화)"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("재촉하는 시간 (게이지 활성화)"), BoxGroup("Json 데이터 영역")]
|
||||||
public int HurryTime { get; set; }
|
public int HurryTime { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("먹는 시간"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("먹는 시간"), BoxGroup("Json 데이터 영역")]
|
||||||
public int EatingTime { get; set; }
|
public int EatingTime { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("업그레이드 목록"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("업그레이드 목록"), BoxGroup("Json 데이터 영역")]
|
||||||
public string OpenUpgrade { get; set; }
|
public string OpenUpgrade { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("보물상자 종류"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("보물상자 종류"), BoxGroup("Json 데이터 영역")]
|
||||||
public RewardBoxType RewardBoxType { get; set; }
|
public RewardBoxType RewardBoxType { get; set; }
|
||||||
|
|
||||||
|
[JsonProperty]
|
||||||
[field: SerializeField, Tooltip("보물상자 가격"), BoxGroup("Json 데이터 영역")]
|
[field: SerializeField, Tooltip("보물상자 가격"), BoxGroup("Json 데이터 영역")]
|
||||||
public int RewardBoxPrice { get; set; }
|
public int RewardBoxPrice { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater.Uis;
|
using BlueWater.Uis;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
@ -28,12 +29,15 @@ namespace BlueWater.Tycoons
|
|||||||
[ShowInInspector]
|
[ShowInInspector]
|
||||||
public Dictionary<string, int> SelectedCard { get; private set; }
|
public Dictionary<string, int> SelectedCard { get; private set; }
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
SelectedCard = new Dictionary<string, int>(CardDataSo.GetDataCount());
|
||||||
|
}
|
||||||
|
|
||||||
private void Start()
|
private void Start()
|
||||||
{
|
{
|
||||||
_tycoonManager = TycoonManager.Instance;
|
_tycoonManager = TycoonManager.Instance;
|
||||||
_tycoonStatus = _tycoonManager.TycoonStatus;
|
_tycoonStatus = _tycoonManager.TycoonStatus;
|
||||||
|
|
||||||
SelectedCard = new Dictionary<string, int>(CardDataSo.GetDataCount());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TycoonCard CreateTycoonCard(Transform instantiateLocation = null)
|
public TycoonCard CreateTycoonCard(Transform instantiateLocation = null)
|
||||||
|
@ -26,6 +26,7 @@ namespace BlueWater.Tycoons
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private RewardBox _rareRewardBoxObject;
|
private RewardBox _rareRewardBoxObject;
|
||||||
|
|
||||||
|
[ShowInInspector]
|
||||||
public Dictionary<string, int> InstanceCocktailDatas { get; private set; } = new();
|
public Dictionary<string, int> InstanceCocktailDatas { get; private set; } = new();
|
||||||
|
|
||||||
private int _playerServingCount;
|
private int _playerServingCount;
|
||||||
|
@ -323,7 +323,7 @@ namespace BlueWater.Tycoons
|
|||||||
PlayerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier;
|
PlayerMoveSpeedMultiplier = GameManager.Instance.CurrentTycoonPlayer.TycoonMovement.MoveSpeedMultiplier;
|
||||||
PlayerDashCooldownReduction = 0;
|
PlayerDashCooldownReduction = 0;
|
||||||
TipMultiplier = 0f;
|
TipMultiplier = 0f;
|
||||||
EndGoldMultiplier = 0.5f;
|
EndGoldMultiplier = 0f;
|
||||||
_customerHurryTimeIncrease = 0;
|
_customerHurryTimeIncrease = 0;
|
||||||
BarrelAutoIncrease = 0;
|
BarrelAutoIncrease = 0;
|
||||||
ServerTipMultiplier = 0f;
|
ServerTipMultiplier = 0f;
|
||||||
|
@ -92,7 +92,6 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
private void SetEmpty()
|
private void SetEmpty()
|
||||||
{
|
{
|
||||||
SetItemSprite(null);
|
|
||||||
OrderCocktailData = null;
|
OrderCocktailData = null;
|
||||||
_fillTween?.Kill();
|
_fillTween?.Kill();
|
||||||
}
|
}
|
||||||
@ -130,6 +129,16 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
SetTween(waitTime, hurryTime, isReverse);
|
SetTween(waitTime, hurryTime, isReverse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OrderItem(float waitTime, float hurryTime, bool isReverse = false)
|
||||||
|
{
|
||||||
|
_isOrdered = true;
|
||||||
|
_isWaitTimeOver = false;
|
||||||
|
_isItemReceived = false;
|
||||||
|
ShowUi();
|
||||||
|
|
||||||
|
SetTween(waitTime, hurryTime, isReverse);
|
||||||
|
}
|
||||||
|
|
||||||
public void SetTween(float waitTime, float hurryTime, bool isReverse = false)
|
public void SetTween(float waitTime, float hurryTime, bool isReverse = false)
|
||||||
{
|
{
|
||||||
|
@ -2,6 +2,7 @@ using System;
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Npcs.Customers;
|
using BlueWater.Npcs.Customers;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
@ -19,6 +20,9 @@ namespace BlueWater.Uis
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private SkeletonGraphic _chain;
|
private SkeletonGraphic _chain;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string playChainSfxName = "PlayChain";
|
||||||
|
|
||||||
[Title("계산서")]
|
[Title("계산서")]
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Vector3 _spawnPosition;
|
private Vector3 _spawnPosition;
|
||||||
@ -100,6 +104,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
private void PlayChainAnimation()
|
private void PlayChainAnimation()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(playChainSfxName);
|
||||||
_chain.AnimationState.SetAnimation(0, Move, true);
|
_chain.AnimationState.SetAnimation(0, Move, true);
|
||||||
_isMovedChain = true;
|
_isMovedChain = true;
|
||||||
}
|
}
|
||||||
@ -132,6 +137,7 @@ namespace BlueWater.Uis
|
|||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AudioManager.Instance.StopSfx(playChainSfxName);
|
||||||
_chain.AnimationState.ClearTrack(0);
|
_chain.AnimationState.ClearTrack(0);
|
||||||
_isMovedChain = false;
|
_isMovedChain = false;
|
||||||
_isActivating = false;
|
_isActivating = false;
|
||||||
|
@ -70,6 +70,16 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
private void Awake()
|
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;
|
EventManager.OnLevelUp += UpdateManualBook;
|
||||||
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
LocalizationSettings.SelectedLocaleChanged += OnChangedLocale;
|
||||||
}
|
}
|
||||||
@ -85,16 +95,6 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
_openManualBookAction.performed += OnOpen;
|
_openManualBookAction.performed += OnOpen;
|
||||||
|
|
||||||
_cocktailRecipeButtons = transform.GetComponentsInChildren<CocktailRecipeButton>(true).ToList();
|
|
||||||
|
|
||||||
foreach (var element in _cocktailRecipeButtons)
|
|
||||||
{
|
|
||||||
element.Initialize();
|
|
||||||
element.AddSelectedAction(SelectItem);
|
|
||||||
}
|
|
||||||
|
|
||||||
_craftingIngredients = _craftingContents.GetComponentsInChildren<CraftingIngredient>(true).ToList();
|
|
||||||
|
|
||||||
uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
|
uiEventsController.SetSelectObject(_cocktailRecipeButtons[0].gameObject);
|
||||||
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
|
EventSystem.current.SetSelectedGameObject(uiEventsController.SelectObject);
|
||||||
}
|
}
|
||||||
@ -124,7 +124,7 @@ namespace BlueWater.Uis
|
|||||||
if (_selectedCocktailRecipeButton != null)
|
if (_selectedCocktailRecipeButton != null)
|
||||||
{
|
{
|
||||||
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
||||||
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}";
|
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}%";
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
|
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
|
||||||
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
|
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
|
||||||
@ -229,7 +229,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
_selectedCocktailName.text = Utils.GetLocalizedString(_selectedCocktailRecipeButton.CocktailData.Idx);
|
||||||
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite;
|
_selectedCocktailImage.sprite = _selectedCocktailRecipeButton.CocktailData.Sprite;
|
||||||
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}";
|
_ratioRange.text = $"{Utils.GetLocalizedString("MarginOfError")} : {_selectedCocktailRecipeButton.CocktailData.RatioRange}%";
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
|
stringBuilder.Append($"{_selectedCocktailRecipeButton.CocktailData.Idx}Description");
|
||||||
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
|
_selectedCocktailDescription.text = Utils.GetLocalizedString(stringBuilder.ToString());
|
||||||
|
@ -25,7 +25,7 @@ namespace BlueWater.Uis
|
|||||||
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
|
private Vector3 _cardLocalScale_5 = new(0.65f, 0.65f, 1f);
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private string _openSfxName = "RareRewardBox";
|
private string _openSfxName = "OpenRareRewardBox";
|
||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Button allOpenCardButton;
|
private Button allOpenCardButton;
|
||||||
@ -61,8 +61,8 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
|
||||||
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
||||||
|
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||||
PopupUiController.RegisterPopup(this);
|
PopupUiController.RegisterPopup(this);
|
||||||
_panel.SetActive(true);
|
_panel.SetActive(true);
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using BlueWater.Npcs.Customers;
|
|
||||||
using BlueWater.Tycoons;
|
using BlueWater.Tycoons;
|
||||||
using BlueWater.Utility;
|
using BlueWater.Utility;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -417,7 +416,12 @@ namespace BlueWater.Uis
|
|||||||
_tipGainedText.text = _tipGained.ToString("N0");
|
_tipGainedText.text = _tipGained.ToString("N0");
|
||||||
_goldSpentText.text = _goldSpent.ToString("N0");
|
_goldSpentText.text = _goldSpent.ToString("N0");
|
||||||
_totalGoldText.text = $"{Utils.GetLocalizedString("TotalGold")} : {ES3.Load(SaveData.EndGold, 0):N0}";
|
_totalGoldText.text = $"{Utils.GetLocalizedString("TotalGold")} : {ES3.Load(SaveData.EndGold, 0):N0}";
|
||||||
_minusPercentText.text = $"- {Mathf.RoundToInt((1f - TycoonManager.Instance.TycoonStatus.EndGoldMultiplier) * 100)}%";
|
|
||||||
|
float endGoldMultiplier = -0.5f + TycoonManager.Instance.TycoonStatus.EndGoldMultiplier;
|
||||||
|
int percent = Mathf.RoundToInt(endGoldMultiplier * 100);
|
||||||
|
char sign = percent >= 0 ? '+' : '-';
|
||||||
|
_minusPercentText.color = percent >= 0 ? Color.blue : Color.red;
|
||||||
|
_minusPercentText.text = $"{sign} {percent}%";
|
||||||
}
|
}
|
||||||
|
|
||||||
[Button("결과 즉시 테스트")]
|
[Button("결과 즉시 테스트")]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using BlueWater.Audios;
|
||||||
using BlueWater.Tycoons;
|
using BlueWater.Tycoons;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -15,6 +16,9 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Transform _contents;
|
private Transform _contents;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private string _openSfxName = "OpenNormalRewardBox";
|
||||||
|
|
||||||
private List<TycoonCard> _tycoonCards = new(3);
|
private List<TycoonCard> _tycoonCards = new(3);
|
||||||
|
|
||||||
@ -39,6 +43,7 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
public override void Open()
|
public override void Open()
|
||||||
{
|
{
|
||||||
|
AudioManager.Instance.PlaySfx(_openSfxName, ignoreTimeScale: true);
|
||||||
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
VisualFeedbackManager.Instance.SetBaseTimeScale(0.0f);
|
||||||
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.TycoonUi);
|
||||||
PopupUiController.RegisterPopup(this);
|
PopupUiController.RegisterPopup(this);
|
||||||
|
@ -80,7 +80,7 @@ namespace BlueWater.Uis
|
|||||||
// Methods
|
// Methods
|
||||||
#region Methods
|
#region Methods
|
||||||
|
|
||||||
public async void TycoonOpenUi()
|
public void TycoonOpenUi()
|
||||||
{
|
{
|
||||||
_openUiStartTween = _openUiImage.transform.DOScale(1f, 0.3f)
|
_openUiStartTween = _openUiImage.transform.DOScale(1f, 0.3f)
|
||||||
.From(0f)
|
.From(0f)
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using Sirenix.OdinInspector;
|
using Sirenix.OdinInspector;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
namespace BlueWater.Uis
|
namespace BlueWater.Uis
|
||||||
@ -18,6 +20,16 @@ namespace BlueWater.Uis
|
|||||||
|
|
||||||
[SerializeField]
|
[SerializeField]
|
||||||
private Image _fadeImage;
|
private Image _fadeImage;
|
||||||
|
|
||||||
|
[Title("테스트")]
|
||||||
|
[SerializeField]
|
||||||
|
private bool _isUiClickTest;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private GraphicRaycaster _raycaster;
|
||||||
|
|
||||||
|
[SerializeField]
|
||||||
|
private EventSystem _eventSystem;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -33,6 +45,46 @@ namespace BlueWater.Uis
|
|||||||
{
|
{
|
||||||
EventManager.OnFadeInOut += FadeInOut;
|
EventManager.OnFadeInOut += FadeInOut;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Update()
|
||||||
|
{
|
||||||
|
if (!_isUiClickTest) return;
|
||||||
|
|
||||||
|
if (Input.GetMouseButtonDown(0))
|
||||||
|
{
|
||||||
|
// 1. UI Raycast
|
||||||
|
PointerEventData pointerData = new PointerEventData(_eventSystem)
|
||||||
|
{
|
||||||
|
position = Input.mousePosition
|
||||||
|
};
|
||||||
|
|
||||||
|
List<RaycastResult> uiResults = new List<RaycastResult>();
|
||||||
|
_raycaster.Raycast(pointerData, uiResults);
|
||||||
|
|
||||||
|
if (uiResults.Count > 0)
|
||||||
|
{
|
||||||
|
Debug.Log($"Clicked on UI: {uiResults[0].gameObject.name}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 3D Raycast
|
||||||
|
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
|
||||||
|
if (Physics.Raycast(ray, out RaycastHit hit))
|
||||||
|
{
|
||||||
|
Debug.Log($"Clicked on 3D Object: {hit.collider.gameObject.name}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 2D Raycast
|
||||||
|
Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
|
||||||
|
RaycastHit2D hit2D = Physics2D.Raycast(mousePosition, Vector2.zero);
|
||||||
|
|
||||||
|
if (hit2D.collider != null)
|
||||||
|
{
|
||||||
|
Debug.Log($"Clicked on 2D Object: {hit2D.collider.gameObject.name}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 23 KiB |
BIN
Assets/03.Images/Ui/Tycoon/ManualBook/GarnishIcon.png
Normal file
BIN
Assets/03.Images/Ui/Tycoon/ManualBook/GarnishIcon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
166
Assets/03.Images/Ui/Tycoon/ManualBook/GarnishIcon.png.meta
Normal file
166
Assets/03.Images/Ui/Tycoon/ManualBook/GarnishIcon.png.meta
Normal file
@ -0,0 +1,166 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: fd7c7a3fb4faf594787e004138691965
|
||||||
|
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: GarnishIcon_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 42
|
||||||
|
y: 44
|
||||||
|
width: 42
|
||||||
|
height: 41
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: 0
|
||||||
|
bones: []
|
||||||
|
spriteID: 46a548f72023b904099f754086ee7d9b
|
||||||
|
internalID: -299706786
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID: 5e97eb03825dee720800000000000000
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
GarnishIcon_0: -299706786
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/03.Images/Ui/Tycoon/TrashCanWhite.png
Normal file
BIN
Assets/03.Images/Ui/Tycoon/TrashCanWhite.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.4 KiB |
143
Assets/03.Images/Ui/Tycoon/TrashCanWhite.png.meta
Normal file
143
Assets/03.Images/Ui/Tycoon/TrashCanWhite.png.meta
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 48d6fc4ad3142af4cb4e687ea5c9fb73
|
||||||
|
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:
|
149
Assets/04.Materials/Characters/TycoonPlayer.mat
Normal file
149
Assets/04.Materials/Characters/TycoonPlayer.mat
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 8
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: TycoonPlayer
|
||||||
|
m_Shader: {fileID: -6465566751694194690, guid: 8f16ff0e59234ef45b2fe65b282f6ff7, type: 3}
|
||||||
|
m_Parent: {fileID: 0}
|
||||||
|
m_ModifiedSerializedProperties: 0
|
||||||
|
m_ValidKeywords: []
|
||||||
|
m_InvalidKeywords: []
|
||||||
|
m_LightmapFlags: 4
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: 3000
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses:
|
||||||
|
- MOTIONVECTORS
|
||||||
|
m_LockedProperties: _IsHit
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _BaseMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 2800000, guid: 204779ef72f790b418c77b89042f080b, type: 3}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _SpecGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_Lightmaps:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_LightmapsInd:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- unity_ShadowMasks:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- _AddPrecomputedVelocity: 0
|
||||||
|
- _AlphaClip: 0
|
||||||
|
- _AlphaClipThreshold: 0.2
|
||||||
|
- _AlphaToMask: 0
|
||||||
|
- _Blend: 0
|
||||||
|
- _BlendModePreserveSpecular: 1
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _CastShadows: 1
|
||||||
|
- _ClearCoatMask: 0
|
||||||
|
- _ClearCoatSmoothness: 0
|
||||||
|
- _Cull: 2
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailAlbedoMapScale: 1
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DissolveValue: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _DstBlendAlpha: 0
|
||||||
|
- _EnvironmentReflections: 1
|
||||||
|
- _GlossMapScale: 0
|
||||||
|
- _Glossiness: 0
|
||||||
|
- _GlossyReflections: 0
|
||||||
|
- _GlowSize: 0
|
||||||
|
- _IsHit: 0
|
||||||
|
- _IsSeeThrough: 0
|
||||||
|
- _Metallic: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _Opacity: 0.7
|
||||||
|
- _Parallax: 0.005
|
||||||
|
- _QueueControl: 0
|
||||||
|
- _QueueOffset: 0
|
||||||
|
- _ReceiveShadows: 1
|
||||||
|
- _Size: 0
|
||||||
|
- _Smoothness: 0.8
|
||||||
|
- _SmoothnessTextureChannel: 0
|
||||||
|
- _SpecularHighlights: 1
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _SrcBlendAlpha: 1
|
||||||
|
- _Surface: 0
|
||||||
|
- _WorkflowMode: 1
|
||||||
|
- _ZTest: 4
|
||||||
|
- _ZWrite: 1
|
||||||
|
- _ZWriteControl: 0
|
||||||
|
m_Colors:
|
||||||
|
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _FlashColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _GlowColor: {r: 5.3403134, g: 5.3403134, b: 0, a: 0}
|
||||||
|
- _PlayerPosition: {r: 0.5, g: 0.55, b: 0, a: 0}
|
||||||
|
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
m_AllowLocking: 1
|
||||||
|
--- !u!114 &3929801182760292753
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 11
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
version: 9
|
8
Assets/04.Materials/Characters/TycoonPlayer.mat.meta
Normal file
8
Assets/04.Materials/Characters/TycoonPlayer.mat.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 438948b549694ad49b234849e64d1e9e
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -104,7 +104,7 @@ Material:
|
|||||||
- _Glossiness: 0
|
- _Glossiness: 0
|
||||||
- _GlossyReflections: 0
|
- _GlossyReflections: 0
|
||||||
- _ISCORNER: 0
|
- _ISCORNER: 0
|
||||||
- _IsCorner: 0
|
- _IsCorner: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _OutlineMipLevel: 0
|
- _OutlineMipLevel: 0
|
||||||
|
@ -84,6 +84,7 @@ Material:
|
|||||||
m_Floats:
|
m_Floats:
|
||||||
- _AddPrecomputedVelocity: 0
|
- _AddPrecomputedVelocity: 0
|
||||||
- _AlphaClip: 0
|
- _AlphaClip: 0
|
||||||
|
- _AlphaThreshold: 0.5
|
||||||
- _AlphaToMask: 0
|
- _AlphaToMask: 0
|
||||||
- _Blend: 0
|
- _Blend: 0
|
||||||
- _BlendModePreserveSpecular: 1
|
- _BlendModePreserveSpecular: 1
|
||||||
@ -103,7 +104,7 @@ Material:
|
|||||||
- _Glossiness: 0
|
- _Glossiness: 0
|
||||||
- _GlossyReflections: 0
|
- _GlossyReflections: 0
|
||||||
- _ISCORNER: 0
|
- _ISCORNER: 0
|
||||||
- _IsCorner: 0
|
- _IsCorner: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _OutlineMipLevel: 0
|
- _OutlineMipLevel: 0
|
||||||
|
@ -84,6 +84,7 @@ Material:
|
|||||||
m_Floats:
|
m_Floats:
|
||||||
- _AddPrecomputedVelocity: 0
|
- _AddPrecomputedVelocity: 0
|
||||||
- _AlphaClip: 0
|
- _AlphaClip: 0
|
||||||
|
- _AlphaThreshold: 0.5
|
||||||
- _AlphaToMask: 0
|
- _AlphaToMask: 0
|
||||||
- _Blend: 0
|
- _Blend: 0
|
||||||
- _BlendModePreserveSpecular: 1
|
- _BlendModePreserveSpecular: 1
|
||||||
@ -103,7 +104,7 @@ Material:
|
|||||||
- _Glossiness: 0
|
- _Glossiness: 0
|
||||||
- _GlossyReflections: 0
|
- _GlossyReflections: 0
|
||||||
- _ISCORNER: 0
|
- _ISCORNER: 0
|
||||||
- _IsCorner: 0
|
- _IsCorner: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _OutlineMipLevel: 0
|
- _OutlineMipLevel: 0
|
||||||
|
@ -84,6 +84,7 @@ Material:
|
|||||||
m_Floats:
|
m_Floats:
|
||||||
- _AddPrecomputedVelocity: 0
|
- _AddPrecomputedVelocity: 0
|
||||||
- _AlphaClip: 0
|
- _AlphaClip: 0
|
||||||
|
- _AlphaThreshold: 0.5
|
||||||
- _AlphaToMask: 0
|
- _AlphaToMask: 0
|
||||||
- _Blend: 0
|
- _Blend: 0
|
||||||
- _BlendModePreserveSpecular: 1
|
- _BlendModePreserveSpecular: 1
|
||||||
@ -103,7 +104,7 @@ Material:
|
|||||||
- _Glossiness: 0
|
- _Glossiness: 0
|
||||||
- _GlossyReflections: 0
|
- _GlossyReflections: 0
|
||||||
- _ISCORNER: 0
|
- _ISCORNER: 0
|
||||||
- _IsCorner: 0
|
- _IsCorner: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _OutlineMipLevel: 0
|
- _OutlineMipLevel: 0
|
||||||
|
@ -84,6 +84,7 @@ Material:
|
|||||||
m_Floats:
|
m_Floats:
|
||||||
- _AddPrecomputedVelocity: 0
|
- _AddPrecomputedVelocity: 0
|
||||||
- _AlphaClip: 0
|
- _AlphaClip: 0
|
||||||
|
- _AlphaThreshold: 0.5
|
||||||
- _AlphaToMask: 0
|
- _AlphaToMask: 0
|
||||||
- _Blend: 0
|
- _Blend: 0
|
||||||
- _BlendModePreserveSpecular: 1
|
- _BlendModePreserveSpecular: 1
|
||||||
@ -103,7 +104,7 @@ Material:
|
|||||||
- _Glossiness: 0
|
- _Glossiness: 0
|
||||||
- _GlossyReflections: 0
|
- _GlossyReflections: 0
|
||||||
- _ISCORNER: 0
|
- _ISCORNER: 0
|
||||||
- _IsCorner: 0
|
- _IsCorner: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _OutlineMipLevel: 0
|
- _OutlineMipLevel: 0
|
||||||
|
@ -84,6 +84,7 @@ Material:
|
|||||||
m_Floats:
|
m_Floats:
|
||||||
- _AddPrecomputedVelocity: 0
|
- _AddPrecomputedVelocity: 0
|
||||||
- _AlphaClip: 0
|
- _AlphaClip: 0
|
||||||
|
- _AlphaThreshold: 0.5
|
||||||
- _AlphaToMask: 0
|
- _AlphaToMask: 0
|
||||||
- _Blend: 0
|
- _Blend: 0
|
||||||
- _BlendModePreserveSpecular: 1
|
- _BlendModePreserveSpecular: 1
|
||||||
@ -103,7 +104,7 @@ Material:
|
|||||||
- _Glossiness: 0
|
- _Glossiness: 0
|
||||||
- _GlossyReflections: 0
|
- _GlossyReflections: 0
|
||||||
- _ISCORNER: 0
|
- _ISCORNER: 0
|
||||||
- _IsCorner: 0
|
- _IsCorner: 1
|
||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
- _OutlineMipLevel: 0
|
- _OutlineMipLevel: 0
|
||||||
|
@ -12,6 +12,7 @@ GameObject:
|
|||||||
- component: {fileID: 6379312009059766371}
|
- component: {fileID: 6379312009059766371}
|
||||||
- component: {fileID: 5910700114136101566}
|
- component: {fileID: 5910700114136101566}
|
||||||
- component: {fileID: 7125556968546628472}
|
- component: {fileID: 7125556968546628472}
|
||||||
|
- component: {fileID: 8088939600092576343}
|
||||||
- component: {fileID: 4764720756731101052}
|
- component: {fileID: 4764720756731101052}
|
||||||
m_Layer: 9
|
m_Layer: 9
|
||||||
m_Name: VisualLook
|
m_Name: VisualLook
|
||||||
@ -67,7 +68,7 @@ MeshRenderer:
|
|||||||
m_RenderingLayerMask: 1
|
m_RenderingLayerMask: 1
|
||||||
m_RendererPriority: 0
|
m_RendererPriority: 0
|
||||||
m_Materials:
|
m_Materials:
|
||||||
- {fileID: 2100000, guid: 288333d9c9df2d84cadf3b48d918ebdb, type: 2}
|
- {fileID: 2100000, guid: 438948b549694ad49b234849e64d1e9e, type: 2}
|
||||||
m_StaticBatchInfo:
|
m_StaticBatchInfo:
|
||||||
firstSubMesh: 0
|
firstSubMesh: 0
|
||||||
subMeshCount: 0
|
subMeshCount: 0
|
||||||
@ -132,6 +133,24 @@ MonoBehaviour:
|
|||||||
_animationName: Idle
|
_animationName: Idle
|
||||||
loop: 1
|
loop: 1
|
||||||
timeScale: 1
|
timeScale: 1
|
||||||
|
--- !u!114 &8088939600092576343
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 569530817952539991}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 26947ae098a8447408d80c0c86e35b48, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
skeletonRenderer: {fileID: 7125556968546628472}
|
||||||
|
customSlotMaterials: []
|
||||||
|
customMaterialOverrides:
|
||||||
|
- overrideDisabled: 0
|
||||||
|
originalMaterial: {fileID: 2100000, guid: 288333d9c9df2d84cadf3b48d918ebdb, type: 2}
|
||||||
|
replacementMaterial: {fileID: 2100000, guid: 438948b549694ad49b234849e64d1e9e, type: 2}
|
||||||
--- !u!210 &4764720756731101052
|
--- !u!210 &4764720756731101052
|
||||||
SortingGroup:
|
SortingGroup:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -337,7 +356,6 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
<Rigidbody>k__BackingField: {fileID: 6925146187533612706}
|
<Rigidbody>k__BackingField: {fileID: 6925146187533612706}
|
||||||
<CharacterCollider>k__BackingField: {fileID: 2935942385829016914}
|
<CharacterCollider>k__BackingField: {fileID: 2935942385829016914}
|
||||||
<PlayerInput>k__BackingField: {fileID: 0}
|
|
||||||
<VisualLook>k__BackingField: {fileID: 6509241874729291456}
|
<VisualLook>k__BackingField: {fileID: 6509241874729291456}
|
||||||
<SkeletonAnimation>k__BackingField: {fileID: 7125556968546628472}
|
<SkeletonAnimation>k__BackingField: {fileID: 7125556968546628472}
|
||||||
<InteractionCanvas>k__BackingField: {fileID: 56698895639349130}
|
<InteractionCanvas>k__BackingField: {fileID: 56698895639349130}
|
||||||
@ -361,7 +379,7 @@ MonoBehaviour:
|
|||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
<SkeletonAnimation>k__BackingField: {fileID: 7125556968546628472}
|
<SkeletonAnimation>k__BackingField: {fileID: 7125556968546628472}
|
||||||
_originalMaterial: {fileID: 0}
|
_originalMaterial: {fileID: 2100000, guid: 288333d9c9df2d84cadf3b48d918ebdb, type: 2}
|
||||||
_replacementMaterial: {fileID: 0}
|
_replacementMaterial: {fileID: 0}
|
||||||
_initialSkinName: Basic
|
_initialSkinName: Basic
|
||||||
_isRandomSkin: 0
|
_isRandomSkin: 0
|
||||||
@ -380,11 +398,14 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 6ff2dc3fa7a6be445bf8e71043f86d2e, type: 3}
|
m_Script: {fileID: 11500000, guid: 6ff2dc3fa7a6be445bf8e71043f86d2e, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
_spriteRenderer: {fileID: 5527707380059080408}
|
|
||||||
<MaxHealthPoint>k__BackingField: 4
|
<MaxHealthPoint>k__BackingField: 4
|
||||||
<CurrentHealthPoint>k__BackingField: 4
|
<CurrentHealthPoint>k__BackingField: 4
|
||||||
<InvincibilityDuration>k__BackingField: 0
|
<InvincibilityDuration>k__BackingField: 0
|
||||||
<IsInvincible>k__BackingField: 0
|
<IsInvincible>k__BackingField: 0
|
||||||
|
_isShaking: 1
|
||||||
|
_shakingPower: 1
|
||||||
|
_shakingDuration: 0.25
|
||||||
|
attackedSfxName: CombatPlayerAttacked
|
||||||
heartRecoverySfxName: HeartRecovery
|
heartRecoverySfxName: HeartRecovery
|
||||||
--- !u!114 &1674052485383758547
|
--- !u!114 &1674052485383758547
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
|
@ -49,5 +49,5 @@ MonoBehaviour:
|
|||||||
_usedFontMaterials:
|
_usedFontMaterials:
|
||||||
- {fileID: 1328173432319114220, guid: 2f35c40df3d2a1a41b57c8b9eca40913, type: 2}
|
- {fileID: 1328173432319114220, guid: 2f35c40df3d2a1a41b57c8b9eca40913, type: 2}
|
||||||
- {fileID: 2100000, guid: 12575fbfb1a20814aae86a588932b912, type: 2}
|
- {fileID: 2100000, guid: 12575fbfb1a20814aae86a588932b912, type: 2}
|
||||||
_defaultOutlineSize: 0.4
|
_defaultOutlineSize: 0.2
|
||||||
_chineseOutlineSize: 0.05
|
_chineseOutlineSize: 0.05
|
||||||
|
@ -199,7 +199,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 8780093359852370517, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
- target: {fileID: 8780093359852370517, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
||||||
propertyPath: m_Sprite
|
propertyPath: m_Sprite
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 21300000, guid: dab2a247be6173643860ce5c7632e734, type: 3}
|
objectReference: {fileID: 21300000, guid: 66f1c43fd7b6b494c9c2ccb5b437122d, type: 3}
|
||||||
- target: {fileID: 9047629830516719732, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
- target: {fileID: 9047629830516719732, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
||||||
propertyPath: m_Sprite
|
propertyPath: m_Sprite
|
||||||
value:
|
value:
|
||||||
|
@ -175,7 +175,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 3779548209033231211, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
- target: {fileID: 3779548209033231211, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
||||||
propertyPath: m_Sprite
|
propertyPath: m_Sprite
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 21300000, guid: bef7d0464ba595c48b2d3269a15e331a, type: 3}
|
objectReference: {fileID: 21300000, guid: 48d6fc4ad3142af4cb4e687ea5c9fb73, type: 3}
|
||||||
- target: {fileID: 5953080908505751474, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
- target: {fileID: 5953080908505751474, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
||||||
propertyPath: m_IsActive
|
propertyPath: m_IsActive
|
||||||
value: 0
|
value: 0
|
||||||
|
@ -79,7 +79,7 @@ PrefabInstance:
|
|||||||
- target: {fileID: 3779548209033231211, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
- target: {fileID: 3779548209033231211, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
||||||
propertyPath: m_Sprite
|
propertyPath: m_Sprite
|
||||||
value:
|
value:
|
||||||
objectReference: {fileID: 21300000, guid: e2da613ab7d3fe94c801ea12e08ee54d, type: 3}
|
objectReference: {fileID: 21300000, guid: d2e854d9e991e8e44a308e02390cf441, type: 3}
|
||||||
- target: {fileID: 5024482427928425524, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
- target: {fileID: 5024482427928425524, guid: 3f9f846a7f237924e97c9acf370d991d, type: 3}
|
||||||
propertyPath: m_IsActive
|
propertyPath: m_IsActive
|
||||||
value: 1
|
value: 1
|
||||||
|
@ -194,7 +194,7 @@ MonoBehaviour:
|
|||||||
_liquidText: {fileID: 6864126811145481680}
|
_liquidText: {fileID: 6864126811145481680}
|
||||||
_ratioText: {fileID: 373231903261848343}
|
_ratioText: {fileID: 373231903261848343}
|
||||||
_liquidTypeSprite: {fileID: -2003835345, guid: ee35006156d5e234c9769b6b6c2f5b1f, type: 3}
|
_liquidTypeSprite: {fileID: -2003835345, guid: ee35006156d5e234c9769b6b6c2f5b1f, type: 3}
|
||||||
_garnishTypeSprite: {fileID: 0}
|
_garnishTypeSprite: {fileID: -299706786, guid: fd7c7a3fb4faf594787e004138691965, type: 3}
|
||||||
--- !u!1 &2225133626707228621
|
--- !u!1 &2225133626707228621
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Box_Open.mp3
Normal file
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Box_Open.mp3
Normal file
Binary file not shown.
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Box_Open.mp3.meta
Normal file
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Box_Open.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 92cf41edb5694a04eb27847dae1b337f
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 8
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Chain_1.mp3
Normal file
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Chain_1.mp3
Normal file
Binary file not shown.
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Chain_1.mp3.meta
Normal file
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Chain_1.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2374925c2e5dd7e47bc214461e4b329d
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 8
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Glass_Table.mp3
Normal file
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Glass_Table.mp3
Normal file
Binary file not shown.
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Glass_Table.mp3.meta
Normal file
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Glass_Table.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 0320fecde5b376f46a0ff9904e17fbc3
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 8
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Vomiting.mp3
Normal file
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Vomiting.mp3
Normal file
Binary file not shown.
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Vomiting.mp3.meta
Normal file
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Vomiting.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a2bebee4126e87746b5fc1a514ceb4a0
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 8
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Wheel.mp3
Normal file
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Wheel.mp3
Normal file
Binary file not shown.
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Wheel.mp3.meta
Normal file
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Wheel.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b532d80acad8e6e4e85dbca6096b071e
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 8
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Whip.mp3
Normal file
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Whip.mp3
Normal file
Binary file not shown.
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Whip.mp3.meta
Normal file
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Whip.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d4b4534edc51fb141860a1b599eb6e53
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 8
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Wood_Attack.mp3
Normal file
BIN
Assets/06.Sounds/Sfx/Tycoon/SFX_Wood_Attack.mp3
Normal file
Binary file not shown.
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Wood_Attack.mp3.meta
Normal file
23
Assets/06.Sounds/Sfx/Tycoon/SFX_Wood_Attack.mp3.meta
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 603fde43ec110ee42bf61c41ca21a1fb
|
||||||
|
AudioImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 8
|
||||||
|
defaultSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
loadType: 0
|
||||||
|
sampleRateSetting: 0
|
||||||
|
sampleRateOverride: 44100
|
||||||
|
compressionFormat: 1
|
||||||
|
quality: 1
|
||||||
|
conversionMode: 0
|
||||||
|
preloadAudioData: 0
|
||||||
|
platformSettingOverrides: {}
|
||||||
|
forceToMono: 0
|
||||||
|
normalize: 1
|
||||||
|
loadInBackground: 0
|
||||||
|
ambisonic: 0
|
||||||
|
3D: 1
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -2151,8 +2151,8 @@
|
|||||||
"y": 1.0
|
"y": 1.0
|
||||||
},
|
},
|
||||||
"m_DefaultValue": {
|
"m_DefaultValue": {
|
||||||
"x": 0.0,
|
"x": -1.0,
|
||||||
"y": 0.0
|
"y": 1.0
|
||||||
},
|
},
|
||||||
"m_Labels": []
|
"m_Labels": []
|
||||||
}
|
}
|
||||||
@ -2924,8 +2924,8 @@
|
|||||||
"y": 1.0
|
"y": 1.0
|
||||||
},
|
},
|
||||||
"m_DefaultValue": {
|
"m_DefaultValue": {
|
||||||
"x": 0.0,
|
"x": 1.0,
|
||||||
"y": 0.0
|
"y": 1.0
|
||||||
},
|
},
|
||||||
"m_Labels": []
|
"m_Labels": []
|
||||||
}
|
}
|
||||||
@ -5091,7 +5091,7 @@
|
|||||||
},
|
},
|
||||||
"m_DefaultValue": {
|
"m_DefaultValue": {
|
||||||
"x": 0.0,
|
"x": 0.0,
|
||||||
"y": 0.0
|
"y": 1.0
|
||||||
},
|
},
|
||||||
"m_Labels": []
|
"m_Labels": []
|
||||||
}
|
}
|
||||||
|
2059
Assets/09.Shaders/TycoonPlayer.shadergraph
Normal file
2059
Assets/09.Shaders/TycoonPlayer.shadergraph
Normal file
File diff suppressed because it is too large
Load Diff
10
Assets/09.Shaders/TycoonPlayer.shadergraph.meta
Normal file
10
Assets/09.Shaders/TycoonPlayer.shadergraph.meta
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 8f16ff0e59234ef45b2fe65b282f6ff7
|
||||||
|
ScriptedImporter:
|
||||||
|
internalIDToNameTable: []
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
script: {fileID: 11500000, guid: 625f186215c104763be7675aa2d941aa, type: 3}
|
@ -238694,7 +238694,7 @@ Material:
|
|||||||
- _OutlineSoftness: 0
|
- _OutlineSoftness: 0
|
||||||
- _OutlineUVSpeedX: 0
|
- _OutlineUVSpeedX: 0
|
||||||
- _OutlineUVSpeedY: 0
|
- _OutlineUVSpeedY: 0
|
||||||
- _OutlineWidth: 0.4
|
- _OutlineWidth: 0.2
|
||||||
- _PerspectiveFilter: 0.875
|
- _PerspectiveFilter: 0.875
|
||||||
- _Reflectivity: 10
|
- _Reflectivity: 10
|
||||||
- _ScaleRatioA: 0.8
|
- _ScaleRatioA: 0.8
|
||||||
|
@ -70,7 +70,7 @@ Material:
|
|||||||
- _OutlineSoftness: 0
|
- _OutlineSoftness: 0
|
||||||
- _OutlineUVSpeedX: 0
|
- _OutlineUVSpeedX: 0
|
||||||
- _OutlineUVSpeedY: 0
|
- _OutlineUVSpeedY: 0
|
||||||
- _OutlineWidth: 0.4
|
- _OutlineWidth: 0.2
|
||||||
- _PerspectiveFilter: 0.875
|
- _PerspectiveFilter: 0.875
|
||||||
- _Reflectivity: 10
|
- _Reflectivity: 10
|
||||||
- _ScaleRatioA: 0.8
|
- _ScaleRatioA: 0.8
|
||||||
|
24
Assets/AddressableAssetsData/link.xml
Normal file
24
Assets/AddressableAssetsData/link.xml
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<linker>
|
||||||
|
<assembly fullname="Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
|
||||||
|
<type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="Unity.Localization, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||||
|
<type fullname="UnityEngine.Localization.Locale" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.Localization.Tables.SharedTableData" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.Localization.Tables.StringTable" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.Localization.LocaleIdentifier" preserve="nothing" serialized="true" />
|
||||||
|
<type fullname="UnityEngine.Localization.Metadata.MetadataCollection" preserve="nothing" serialized="true" />
|
||||||
|
<type fullname="UnityEngine.Localization.Tables.TableEntryData" preserve="nothing" serialized="true" />
|
||||||
|
<type fullname="UnityEngine.Localization.Tables.DistributedUIDGenerator" preserve="nothing" serialized="true" />
|
||||||
|
<type fullname="UnityEngine.Localization.Tables.SharedTableData/SharedTableEntry" preserve="nothing" serialized="true" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
|
||||||
|
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider" preserve="all" />
|
||||||
|
<type fullname="UnityEngine.ResourceManagement.ResourceProviders.SceneProvider" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
<assembly fullname="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
|
||||||
|
<type fullname="UnityEngine.Object" preserve="all" />
|
||||||
|
</assembly>
|
||||||
|
</linker>
|
7
Assets/AddressableAssetsData/link.xml.meta
Normal file
7
Assets/AddressableAssetsData/link.xml.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: af05d21d433e1c446ab5e3f7e063df2f
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -140,7 +140,7 @@ PlayerSettings:
|
|||||||
loadStoreDebugModeEnabled: 0
|
loadStoreDebugModeEnabled: 0
|
||||||
visionOSBundleVersion: 1.0
|
visionOSBundleVersion: 1.0
|
||||||
tvOSBundleVersion: 1.0
|
tvOSBundleVersion: 1.0
|
||||||
bundleVersion: 0.3.5.10
|
bundleVersion: 0.3.5.11
|
||||||
preloadedAssets:
|
preloadedAssets:
|
||||||
- {fileID: -944628639613478452, guid: 4ed6540e2f7ce234888adf8deff1f241, type: 3}
|
- {fileID: -944628639613478452, guid: 4ed6540e2f7ce234888adf8deff1f241, type: 3}
|
||||||
- {fileID: 11400000, guid: 112e4950c7d9b7a429feb9bb058a93a7, type: 2}
|
- {fileID: 11400000, guid: 112e4950c7d9b7a429feb9bb058a93a7, type: 2}
|
||||||
|
Loading…
Reference in New Issue
Block a user