Merge branch 'develop' of bitbucket.org:usaya/popcorn into develop
This commit is contained in:
commit
4bc89a9f6a
|
|
@ -133,7 +133,7 @@ AnimationClip:
|
||||||
m_Level: 0
|
m_Level: 0
|
||||||
m_CycleOffset: 0
|
m_CycleOffset: 0
|
||||||
m_HasAdditiveReferencePose: 0
|
m_HasAdditiveReferencePose: 0
|
||||||
m_LoopTime: 1
|
m_LoopTime: 0
|
||||||
m_LoopBlend: 0
|
m_LoopBlend: 0
|
||||||
m_LoopBlendOrientation: 0
|
m_LoopBlendOrientation: 0
|
||||||
m_LoopBlendPositionY: 0
|
m_LoopBlendPositionY: 0
|
||||||
|
|
|
||||||
|
|
@ -620,7 +620,7 @@ GameObject:
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &460945447
|
--- !u!224 &460945447
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -1028,7 +1028,7 @@ GameObject:
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &642263094
|
--- !u!224 &642263094
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -1513,7 +1513,7 @@ GameObject:
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 0
|
m_IsActive: 1
|
||||||
--- !u!224 &832390347
|
--- !u!224 &832390347
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -2612,7 +2612,7 @@ GameObject:
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
m_StaticEditorFlags: 0
|
m_StaticEditorFlags: 0
|
||||||
m_IsActive: 1
|
m_IsActive: 0
|
||||||
--- !u!224 &1370567322
|
--- !u!224 &1370567322
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
@ -7923,7 +7923,9 @@ MonoBehaviour:
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
startingGuide: {fileID: 8786490829224139677}
|
startingGuide: {fileID: 8786490829224139677}
|
||||||
gameResultText: {fileID: 1003859323}
|
perfectResultObject: {fileID: 642263093}
|
||||||
|
goodResultObject: {fileID: 1370567321}
|
||||||
|
failureResultObject: {fileID: 460945446}
|
||||||
characterSweat: {fileID: 580170368}
|
characterSweat: {fileID: 580170368}
|
||||||
characterFlower: {fileID: 785034261}
|
characterFlower: {fileID: 785034261}
|
||||||
thermalControl: {fileID: 1870432535}
|
thermalControl: {fileID: 1870432535}
|
||||||
|
|
@ -7986,7 +7988,7 @@ MonoBehaviour:
|
||||||
baseGrowSpeed: 1
|
baseGrowSpeed: 1
|
||||||
hotGrowSpeed: 1.5
|
hotGrowSpeed: 1.5
|
||||||
baseCornPopTime: 10
|
baseCornPopTime: 10
|
||||||
cornBurntDuration: 3
|
cornBurntDuration: 1
|
||||||
--- !u!1 &1928679189
|
--- !u!1 &1928679189
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ public class CornManager : MonoBehaviour
|
||||||
|
|
||||||
private Corn[] cornArray;
|
private Corn[] cornArray;
|
||||||
private bool isHot;
|
private bool isHot;
|
||||||
|
private bool isCompleted;
|
||||||
private List<IObservable<CornCondition>> cornConditions = new List<IObservable<CornCondition>>();
|
private List<IObservable<CornCondition>> cornConditions = new List<IObservable<CornCondition>>();
|
||||||
private readonly ReactiveProperty<float> cornGrowSpeed = new FloatReactiveProperty(0f);
|
private readonly ReactiveProperty<float> cornGrowSpeed = new FloatReactiveProperty(0f);
|
||||||
private readonly CompositeDisposable compositeDisposable = new CompositeDisposable();
|
private readonly CompositeDisposable compositeDisposable = new CompositeDisposable();
|
||||||
|
|
@ -43,6 +44,7 @@ public class CornManager : MonoBehaviour
|
||||||
|
|
||||||
public void RespawnCorn()
|
public void RespawnCorn()
|
||||||
{
|
{
|
||||||
|
isCompleted = false;
|
||||||
compositeDisposable.Clear();
|
compositeDisposable.Clear();
|
||||||
cornConditions.Clear();
|
cornConditions.Clear();
|
||||||
for (int i = 0; i < cornArray.Length; i++)
|
for (int i = 0; i < cornArray.Length; i++)
|
||||||
|
|
@ -60,7 +62,7 @@ public class CornManager : MonoBehaviour
|
||||||
cornArray[i] = corn;
|
cornArray[i] = corn;
|
||||||
corn.SetCornProperty(baseCornPopTime, cornBurntDuration);
|
corn.SetCornProperty(baseCornPopTime, cornBurntDuration);
|
||||||
|
|
||||||
cornGrowSpeed.Subscribe(x =>
|
cornGrowSpeed.Where(_ => !isCompleted).Subscribe(x =>
|
||||||
{
|
{
|
||||||
// コーンが弾けた後はRedの場合のみ焦げ進行する
|
// コーンが弾けた後はRedの場合のみ焦げ進行する
|
||||||
if (corn.Condition.Value == CornCondition.Simple && !isHot)
|
if (corn.Condition.Value == CornCondition.Simple && !isHot)
|
||||||
|
|
@ -90,20 +92,22 @@ public class CornManager : MonoBehaviour
|
||||||
Observable.CombineLatest(cornConditions)
|
Observable.CombineLatest(cornConditions)
|
||||||
.FirstOrDefault(x => !x.Contains(CornCondition.Seed))
|
.FirstOrDefault(x => !x.Contains(CornCondition.Seed))
|
||||||
.Subscribe(x =>
|
.Subscribe(x =>
|
||||||
{
|
|
||||||
if (x.Count(c => c == CornCondition.Simple) == x.Count) // すべてのコーンがPopped
|
|
||||||
{
|
{
|
||||||
result.SetValueAndForceNotify(CornResult.Perfect);
|
isCompleted = true;
|
||||||
}
|
cornGrowSpeed.Value = 0f;
|
||||||
else if (x.Count(c => c == CornCondition.Spilled) == x.Count) // すべてのコーンが飛び出した
|
if (x.Count(c => c == CornCondition.Simple) == x.Count) // すべてのコーンがPopped
|
||||||
{
|
{
|
||||||
result.SetValueAndForceNotify(CornResult.Failure);
|
result.SetValueAndForceNotify(CornResult.Perfect);
|
||||||
}
|
}
|
||||||
else
|
else if (x.Count(c => c == CornCondition.Spilled) == x.Count) // すべてのコーンが飛び出した
|
||||||
{
|
{
|
||||||
result.SetValueAndForceNotify(CornResult.Good);
|
result.SetValueAndForceNotify(CornResult.Failure);
|
||||||
}
|
}
|
||||||
}).AddTo(compositeDisposable);
|
else
|
||||||
|
{
|
||||||
|
result.SetValueAndForceNotify(CornResult.Good);
|
||||||
|
}
|
||||||
|
}).AddTo(compositeDisposable);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ChangeGrowSpeed(ThermalCondition condition)
|
public void ChangeGrowSpeed(ThermalCondition condition)
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,9 @@ public enum GameState
|
||||||
public class PopcornGameManager : MonoBehaviour
|
public class PopcornGameManager : MonoBehaviour
|
||||||
{
|
{
|
||||||
[SerializeField] private GameObject startingGuide;
|
[SerializeField] private GameObject startingGuide;
|
||||||
// [SerializeField] private Text powerResultText;
|
[SerializeField] private GameObject perfectResultObject;
|
||||||
[SerializeField] private Text gameResultText;
|
[SerializeField] private GameObject goodResultObject;
|
||||||
|
[SerializeField] private GameObject failureResultObject;
|
||||||
|
|
||||||
[SerializeField] private GameObject characterSweat;
|
[SerializeField] private GameObject characterSweat;
|
||||||
[SerializeField] private GameObject characterFlower;
|
[SerializeField] private GameObject characterFlower;
|
||||||
|
|
@ -28,6 +29,7 @@ public class PopcornGameManager : MonoBehaviour
|
||||||
|
|
||||||
public IReadOnlyReactiveProperty<GameState> State => state;
|
public IReadOnlyReactiveProperty<GameState> State => state;
|
||||||
private readonly ReactiveProperty<GameState> state = new ReactiveProperty<GameState>(GameState.Guide);
|
private readonly ReactiveProperty<GameState> state = new ReactiveProperty<GameState>(GameState.Guide);
|
||||||
|
private readonly CompositeDisposable compositeDisposable = new CompositeDisposable();
|
||||||
|
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
|
|
@ -55,36 +57,72 @@ public class PopcornGameManager : MonoBehaviour
|
||||||
}
|
}
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
this.UpdateAsObservable().Where(_ => Input.GetMouseButton(0)).FirstOrDefault().Subscribe(_ =>
|
cornManager.Result.SkipLatestValueOnSubscribe().Subscribe(x =>
|
||||||
{
|
{
|
||||||
StartGame();
|
state.Value = GameState.Result;
|
||||||
|
thermalControl.StopMeter();
|
||||||
|
characterFlower.gameObject.SetActive(false);
|
||||||
|
characterSweat.gameObject.SetActive(false);
|
||||||
|
switch (x)
|
||||||
|
{
|
||||||
|
case CornResult.Perfect:
|
||||||
|
perfectResultObject.SetActive(true);
|
||||||
|
break;
|
||||||
|
case CornResult.Good:
|
||||||
|
|
||||||
|
goodResultObject.SetActive(true);
|
||||||
|
break;
|
||||||
|
case CornResult.Failure:
|
||||||
|
failureResultObject.SetActive(true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(x), x, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 再度画面タップでリセット
|
||||||
|
this.UpdateAsObservable()
|
||||||
|
.Select(_ => Input.GetMouseButton(0))
|
||||||
|
.DistinctUntilChanged()
|
||||||
|
.Skip(1)
|
||||||
|
.FirstOrDefault(b => b)
|
||||||
|
.Subscribe(_ =>
|
||||||
|
{
|
||||||
|
ResetGame();
|
||||||
|
}).AddTo(this);
|
||||||
}).AddTo(this);
|
}).AddTo(this);
|
||||||
|
|
||||||
ResetGame();
|
ResetGame();
|
||||||
|
|
||||||
// コーンマネージャからResultきたらStateもResult
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Update()
|
|
||||||
{
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ResetUI()
|
private void ResetUI()
|
||||||
{
|
{
|
||||||
startingGuide.SetActive(true);
|
startingGuide.SetActive(true);
|
||||||
thermoMeter.gameObject.SetActive(false);
|
perfectResultObject.SetActive(false);
|
||||||
gameResultText.text = "";
|
goodResultObject.SetActive(false);
|
||||||
|
failureResultObject.SetActive(false);
|
||||||
|
|
||||||
thermalControl.StopMeter();
|
thermalControl.StopMeter();
|
||||||
|
thermoMeter.gameObject.SetActive(false);
|
||||||
characterFlower.gameObject.SetActive(false);
|
characterFlower.gameObject.SetActive(false);
|
||||||
characterSweat.gameObject.SetActive(false);
|
characterSweat.gameObject.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ResetGame()
|
private void ResetGame()
|
||||||
{
|
{
|
||||||
|
compositeDisposable.Clear();
|
||||||
|
this.UpdateAsObservable()
|
||||||
|
.Select(_ => Input.GetMouseButton(0))
|
||||||
|
.DistinctUntilChanged()
|
||||||
|
.Skip(1)
|
||||||
|
.FirstOrDefault(b => b)
|
||||||
|
.Subscribe(_ =>
|
||||||
|
{
|
||||||
|
StartGame();
|
||||||
|
}).AddTo(compositeDisposable);
|
||||||
ResetUI();
|
ResetUI();
|
||||||
thermalControl.ResetMeter();
|
thermalControl.ResetMeter();
|
||||||
cornManager.RespawnCorn();
|
cornManager.RespawnCorn();
|
||||||
|
state.Value = GameState.Guide;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StartGame()
|
private void StartGame()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue