스토리 모드 작업

This commit is contained in:
김판돌 2024-04-07 18:19:10 +09:00
parent 76865ddec2
commit 52e55e177f
6 changed files with 91 additions and 20 deletions

View File

@ -1,19 +1,87 @@
using System;
using System.Collections.Generic;
using System.Reflection;
using TMPro;
using UnityEngine;
public class StoryPlayUiCtrl : SingletonMonoBehaviour<StoryPlayUiCtrl>
{
List<ScriptData> scriptDatas = new List<ScriptData>();
bool isScript = false;
int index;
[SerializeField] GameObject iUnit;
[SerializeField] TMP_Text iUnitNickname;
[SerializeField] GameObject youUnit;
[SerializeField] TMP_Text youUnitNickname;
[SerializeField] TMP_Text scriptText;
protected override void OnAwake()
{
//TODO game메니저를 확인해서 데이터가 있으면 true 없으면 바로 게임종료가 되도록 수정할것
isScript = true;
gameObject.SetActive(true);
if (GameManager.Instance.chapterData != null)
{
int chapter_id = GameManager.Instance.chapterData.index;
foreach (var item in Statics.excelDatas.scriptData)
{
if (item.Value.chapter_id == chapter_id)
{
scriptDatas.Add(item.Value);
}
}
index = 0;
}
else
{
gameObject.SetActive(false);
}
}
protected override void OnStart()
{
Script();
}
public void SelectNextButton()
{
if (scriptDatas.Count -1 == index)
{
GameManager.Instance.NextScene(GameManager.eScene.Game);
}
if (scriptDatas[index].buttle)
{
PlayCtrl.Instance.isStop = false;
gameObject.SetActive (false);
return;
}
index++;
Script();
}
public void EndButtle()
{
gameObject.SetActive(true);
index++;
Script();
}
private void Script()
{
iUnit.SetActive(scriptDatas[index].position);
youUnit.SetActive(!scriptDatas[index].position);
if (scriptDatas[index].position)
{
iUnitNickname.text = Statics.intUnits[scriptDatas[index].unit_id].name;
}
else
{
youUnitNickname.text = Statics.intUnits[scriptDatas[index].unit_id].name;
}
scriptText.text = scriptDatas[index].text;
}
//TODO 천천히 텍스트가 1개씩 생성되게 만들기
}

View File

@ -45,18 +45,18 @@ public class PlayCtrl : SingletonMonoBehaviour<PlayCtrl>
money = 0;
moneyText.text = money.ToString();
isEndGame = false;
isStop = false;
isStop = (GameManager.Instance.chapterData != null);
delay = 0.0f;
units = new UnitCtrl[9];
units[0] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit0_id).unit_data_id].GetComponent<UnitCtrl>();
units[1] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit1_id).unit_data_id].GetComponent<UnitCtrl>();
units[2] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit2_id).unit_data_id].GetComponent<UnitCtrl>();
units[3] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit3_id).unit_data_id].GetComponent<UnitCtrl>();
units[4] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit4_id).unit_data_id].GetComponent<UnitCtrl>();
units[5] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit5_id).unit_data_id].GetComponent<UnitCtrl>();
units[6] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit6_id).unit_data_id].GetComponent<UnitCtrl>();
units[7] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit7_id).unit_data_id].GetComponent<UnitCtrl>();
units[8] = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit8_id).unit_data_id].GetComponent<UnitCtrl>();
units[0] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit0_id).unit_data_id].GetComponent<UnitCtrl>();
units[1] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit1_id).unit_data_id].GetComponent<UnitCtrl>();
units[2] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit2_id).unit_data_id].GetComponent<UnitCtrl>();
units[3] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit3_id).unit_data_id].GetComponent<UnitCtrl>();
units[4] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit4_id).unit_data_id].GetComponent<UnitCtrl>();
units[5] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit5_id).unit_data_id].GetComponent<UnitCtrl>();
units[6] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit6_id).unit_data_id].GetComponent<UnitCtrl>();
units[7] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit7_id).unit_data_id].GetComponent<UnitCtrl>();
units[8] = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(Statics.deck_info[0].deck_unit8_id).unit_data_id].GetComponent<UnitCtrl>();
for (int n = 0; n < unitSpriteButton.Length; n++)
{
unitSpriteButton[n].sprite = units[n].unitSprite;
@ -89,7 +89,7 @@ public class PlayCtrl : SingletonMonoBehaviour<PlayCtrl>
if(delay > 3.0f)
{
//게임씬으로 이동
GameManager.Instance.NextScene(GameManager.eScene.Game);
StoryPlayUiCtrl.Instance.EndButtle();
}
return;
}

View File

@ -59,7 +59,7 @@ public class DeckPrefab : MonoBehaviour
}
else
{
img.sprite = Statics.longUnits[Statics.itemManager.box.FindDeckUnitInfo(unit_id).unit_data_id].GetComponent<UnitCtrl>().unitSprite;
img.sprite = Statics.intUnits[Statics.itemManager.box.FindDeckUnitInfo(unit_id).unit_data_id].GetComponent<UnitCtrl>().unitSprite;
img.color = Color.white;
}
}

View File

@ -5,6 +5,7 @@ public class ScriptData : Excel
public int chapter_id;
public int unit_id;
public string text;
public bool position;
public bool buttle;
public override void toJson()
{

View File

@ -12,6 +12,8 @@ public class GameManager : DontDestroy<GameManager>
public eScene NowScene;
public bool Over;
public ChapterData chapterData = null;
private CoroutineHandle corExcel;
/// <summary>
@ -52,7 +54,7 @@ public class GameManager : DontDestroy<GameManager>
{
obj.GetComponent<UnitCtrl>().DataSet(data.Key);
Statics.stringUnits.Add(data.Value.name, obj);
Statics.longUnits.Add(data.Value.index, obj);
Statics.intUnits.Add(data.Value.index, obj);
}
}
//stringIcons

View File

@ -16,11 +16,11 @@ public class Statics
public static ExcelDatas excelDatas;
public static Dictionary <string, GameObject> stringUnits = new Dictionary<string,GameObject>();
public static Dictionary <long, GameObject> longUnits = new Dictionary<long, GameObject>();
public static Dictionary <int, GameObject> intUnits = new Dictionary<int, GameObject>();
public static Dictionary<string, Sprite> stringIcons = new Dictionary<string, Sprite>();
public static Dictionary<long, ShopItemData> shopItems = new Dictionary<long, ShopItemData>();
public static Dictionary<int, ShopItemData> shopItems = new Dictionary<int, ShopItemData>();
//서버에서 내려주는 데이터들
public static string uuid;
@ -28,8 +28,8 @@ public class Statics
//유저 기본 정보
public static string nickname;
public static ulong gold;
public static ulong cash;
public static uint gold;
public static uint cash;
public static ItemManager itemManager;
//유저가 세팅한 덱 정보
public static List<DeckInfo> deck_info;