From 4d6ffb3f8acce7b230076ed7124b3e3c4aebe4d1 Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 23 十月 2025 15:53:27 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.1.20:10010/r/Project_SG_scripts
---
Main/System/Battle/BattleField/BoneBattleField.cs | 85 ++++----
Main/System/Settlement/BoneBattleVictoryWin.cs | 76 ++++++++
Main/System/Settlement/BoneBattleFailWin.cs.meta | 11 +
Main/System/Settlement/BoneBattleVictoryWin.cs.meta | 11 +
Main/System/Settlement/BattleSettlementManager.cs | 13 +
Main/System/Settlement/BoneBattleFailWin.cs | 41 ++++
Main/System/ChallengeTab/ChallengeTabWin.cs | 21 ++
Main/System/Battle/BoneFieldBattleWin.cs | 260 ++++++++++++++++++++++++----
8 files changed, 438 insertions(+), 80 deletions(-)
diff --git a/Main/System/Battle/BattleField/BoneBattleField.cs b/Main/System/Battle/BattleField/BoneBattleField.cs
index 51d655f..c0146ed 100644
--- a/Main/System/Battle/BattleField/BoneBattleField.cs
+++ b/Main/System/Battle/BattleField/BoneBattleField.cs
@@ -1,24 +1,14 @@
-using System;
using LitJson;
-using UnityEngine;
using System.Collections.Generic;
-
+using System.Linq;
public class BoneBattleField : BattleField
{
- protected int chapter;// 绔犺妭
- protected int wave;// 娉㈡暟
- protected int level;// 鍏冲崱
protected JsonData extendData;
-
- protected MainChapterConfig chapterConfig;
-
protected MainLevelConfig levelConfig;
-
-
public BoneBattleField(string _guid) : base(_guid)
{
-
+
}
public override void Init(int MapID, int FuncLineID, JsonData _extendData,
@@ -26,22 +16,12 @@
{
base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList, turnMax);
- chapter = FuncLineID / 10000;
- wave = MapID == 1 ? FuncLineID % 100 : 1;//绗嚑娉㈡��
- level = (FuncLineID % 10000) / 100;
-
+ int level = FuncLineID;// 鍏冲崱
extendData = _extendData;
- chapterConfig = MainChapterConfig.Get(chapter);
levelConfig = MainLevelConfig.Get(level);
SetBattleMode(BattleMode.Record);
}
-
- public override void Release()
- {
- base.Release();
- }
-
public override void AutoSetBattleMode()
{
@@ -81,25 +61,15 @@
public override void WhaleFall()
{
- UIManager.Instance.CloseWindow<StoryBossBattleWin>();
AutoFightModel.Instance.isPause = false;
Destroy();
- UIManager.Instance.OpenWindow<BoneFieldWin>();
+
+ if (UIManager.Instance.IsOpened<BoneFieldBattleWin>())
+ {
+ UIManager.Instance.CloseWindow<BoneFieldBattleWin>();
+ UIManager.Instance.OpenWindow<BoneFieldWin>();
+ }
}
-
-
-
- public override void HaveRest()
- {
- // 涓荤嚎BOSS鎴樻枟娌℃湁浼戞伅
- }
-
-
- // public override void OnBattleEnd(JsonData turnFightStateData)
- // {
- // base.OnBattleEnd(turnFightStateData);
- // // HaveRest();
- // }
public override void Run()
{
@@ -115,7 +85,7 @@
{
if (IsBattleFinish)
return;
-
+
// 涓嶈璋冪敤base鐨勫嚱鏁�
BattleManager.Instance.DistributeNextReportPackage(guid);
}
@@ -128,6 +98,39 @@
fsBattleWin = UIManager.Instance.OpenWindow<BoneFieldBattleWin>();
}
fsBattleWin.SetBattleField(this);
- UIManager.Instance.CloseWindow<BoneFieldWin>();
+
+ if (UIManager.Instance.IsOpened<BoneFieldWin>())
+ {
+ UIManager.Instance.CloseWindow<BoneFieldWin>();
+ }
+ }
+
+ public NPCLineupConfig GetBossLineupConfig()
+ {
+ if (!DungeonConfig.TryGetDungeonID(MapID, FuncLineID, out int dungeonID))
+ return null;
+ if (!DungeonConfig.HasKey(dungeonID))
+ return null;
+ int[] lineupIDList = DungeonConfig.Get(dungeonID).LineupIDList;
+ if (lineupIDList.IsNullOrEmpty())
+ return null;
+ int lineupID = lineupIDList[0];
+ if (!NPCLineupConfig.HasKey(lineupID))
+ return null;
+ NPCLineupConfig nPCLineupConfig = NPCLineupConfig.Get(lineupID);
+
+ return nPCLineupConfig;
+ }
+
+ public override BattleObject FindBoss()
+ {
+ var config = GetBossLineupConfig();
+ if (config != null)
+ {
+ int bossId = config.BossID;
+ BattleObject bo = battleObjMgr.allBattleObjDict.Values.FirstOrDefault(bo => bo.teamHero.NPCID == bossId);
+ return bo;
+ }
+ return null;
}
}
\ No newline at end of file
diff --git a/Main/System/Battle/BoneFieldBattleWin.cs b/Main/System/Battle/BoneFieldBattleWin.cs
index d9fa190..a3445c0 100644
--- a/Main/System/Battle/BoneFieldBattleWin.cs
+++ b/Main/System/Battle/BoneFieldBattleWin.cs
@@ -1,53 +1,39 @@
-锘縰sing System;
+锘縰sing System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class BoneFieldBattleWin : UIBase
{
-
- // 缁勪欢寮曠敤
+ [SerializeField] Transform transButtons;
public Transform mountPoint;
-
private BattleRootNode battleRootNode = null;
+ private BoneBattleField battleField;
+ [SerializeField] private Button btnSpeed;
+ [SerializeField] private Text textSpeed;
- private BattleField battleField;
+ [SerializeField] private Button btnPass;
- [SerializeField]
- private Button btnSpeed;
-
- [SerializeField]
- private Text textSpeed;
-
- [SerializeField]
- private Button btnPass;
-
- [SerializeField]
- private Button btnPause;
+ [SerializeField] private Button btnPause;
public BossLifeBar bossLifeBar;
-
-
public SkillWordCell[] skillWordCells;
-
public BossHeadCell bossHeadCell;
-
public Text txtBossName;
-
public Text txtBattleRound;
-
public TotalDamageDisplayer totalDamageDisplayer;
+ // public SkillTips skillTipsRed;
+ // public SkillTips skillTipsBlue;
+ private BattleObject bossBattleObject = null;
+ // [SerializeField] public List<BattleBuffCell> buffCells;
// 鐢熷懡鍛ㄦ湡
protected override void InitComponent()
{
base.InitComponent();
// 鍒濆鍖栫粍浠跺紩鐢� 缁戝畾鎸夐挳绛塙I缁勪欢浜嬩欢
-
btnSpeed.AddListener(ChangeSpeed);
-
btnPass.AddListener(OnClickPass);
-
btnPause.AddListener(OnClickPause);
}
@@ -55,7 +41,6 @@
{
if (null == battleField)
return;
-
battleField.IsPause = !battleField.IsPause;
}
@@ -63,7 +48,6 @@
{
if (null == battleField)
return;
-
battleField.ForceFinish();
}
@@ -71,7 +55,6 @@
{
if (null == battleField)
return;
-
BattleManager.Instance.speedIndex = (BattleManager.Instance.speedIndex + 1) % BattleManager.Instance.speedGear.Length;
battleField.SetSpeedRatio(BattleManager.Instance.speedGear[BattleManager.Instance.speedIndex]);
textSpeed.text = (BattleManager.Instance.speedIndex + 1).ToString();
@@ -81,32 +64,166 @@
{
base.OnPreOpen();
// SetBattleField(BattleManager.Instance.storyBattleField);
+ MainWin.TabChangeEvent += OnTabChangeEvent;
BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
-
- UIManager.Instance.CloseWindow<MainWin>();
+ EventBroadcast.Instance.AddListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
+ EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnCastSkill);
+ BattleManager.Instance.storyBattleField.IsPause = true;
+ bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
+ transButtons.localPosition = new Vector3(0, isOpenBattleChangeTab ? 200 : 0, 0);
+ if (isOpenBattleChangeTab)
+ {
+ UIManager.Instance.GetUI<MainWin>()?.CloseSubUI();
+ }
+ else
+ {
+ UIManager.Instance.CloseWindow<MainWin>();
+ }
}
+
+
protected override void OnPreClose()
{
base.OnPreClose();
- UIManager.Instance.CloseWindow<BattleHUDWin>();
+ MainWin.TabChangeEvent -= OnTabChangeEvent;
BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
+ EventBroadcast.Instance.RemoveListener<BattleDmgInfo>(EventName.BATTLE_DAMAGE_TAKEN, OnDamageTaken);
+ EventBroadcast.Instance.RemoveListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnCastSkill);
+ UIManager.Instance.CloseWindow<BattleHUDWin>();
- if (!UIManager.Instance.IsOpened<MainWin>())
+ bool isOpenBattleChangeTab = IsOpenBattleChangeTab();
+ if (isOpenBattleChangeTab)
+ {
+ UIManager.Instance.GetUI<MainWin>()?.RestoreSubUI();
+ }
+ else
+ {
UIManager.Instance.OpenWindow<MainWin>();
+ }
+
+ if (bossBattleObject != null)
+ {
+ if (bossBattleObject.buffMgr != null)
+ {
+ bossBattleObject.buffMgr.onBuffChanged -= OnBuffChanged;
+ }
+ bossBattleObject = null;
+ }
+
+ if (battleField != null)
+ {
+ battleField.OnRoundChange -= OnRoundChange;
+ battleField = null;
+ }
+ }
+
+ private void OnTabChangeEvent()
+ {
+ UIManager.Instance.CloseWindow<BoneFieldBattleWin>();
+ }
+
+ private void OnCastSkill(string guid, SkillConfig skillConfig, TeamHero teamHero)
+ {
+ if (battleField == null)
+ return;
+
+ if (battleField.guid != guid)
+ return;
+
+ BattleObject battleObject = battleField.battleObjMgr.GetBattleObject(teamHero.ObjID);
+ bool isRed = battleObject.Camp == BattleCamp.Red;
+ // SkillTips tips = isRed ? skillTipsRed : skillTipsBlue;
+ // tips.PlayMotion(battleField, isRed, teamHero, skillConfig);
}
private void OnCreateBattleField(string arg1, BattleField field)
{
if (field.GetType() == battleField.GetType())
{
- SetBattleField(field);
+ SetBattleField(field as BoneBattleField);
}
}
- protected override void OnOpen()
+
+ public void Display()
{
- base.OnOpen();
+
+ NPCLineupConfig lineupConfig = battleField.GetBossLineupConfig();
+
+ if (bossBattleObject != null)
+ {
+ if (bossBattleObject.buffMgr != null)
+ {
+ bossBattleObject.buffMgr.onBuffChanged -= OnBuffChanged;
+ }
+ bossBattleObject = null;
+ }
+
+ bossBattleObject = battleField.FindBoss();
+
+ DisplaySkillWordsList(lineupConfig);
+
+ if (null != bossBattleObject)
+ {
+ TeamHero teamHero = bossBattleObject.teamHero;
+ bossHeadCell.SetTeamHero(teamHero);
+ txtBossName.text = teamHero.name;
+ NPCConfig npcConfig = NPCConfig.Get(teamHero.NPCID);
+ bossLifeBar.SetBaseInfo(Mathf.Max(1, npcConfig.LifeBarCount), (ulong)teamHero.curHp, (ulong)teamHero.maxHp);
+ bossBattleObject.buffMgr.onBuffChanged -= OnBuffChanged;
+ bossBattleObject.buffMgr.onBuffChanged += OnBuffChanged;
+ }
+ else
+ {
+ bossHeadCell.SetTeamHero(null);
+ txtBossName.text = string.Empty;
+ bossLifeBar.SetBaseInfo(2, 2, 2);
+ Debug.LogError("鎵句笉鍒癰oss");
+ }
+
+ OnRoundChange(battleField.round, battleField.turnMax);
+
+ OnBuffChanged();
+
+ totalDamageDisplayer.SetActive(false);
+
+ // skillTipsBlue.SetActive(false);
+ // skillTipsRed.SetActive(false);
+ }
+
+ private void OnBuffChanged()
+ {
+ var buffList = new List<HB428_tagSCBuffRefresh>();
+ if (null != bossBattleObject)
+ {
+ buffList = bossBattleObject.buffMgr.GetBuffList();
+ }
+ // RefreshBuff(buffList);
+ }
+
+ private void RefreshHP()
+ {
+ if (null != bossBattleObject)
+ {
+ TeamHero teamHero = bossBattleObject.teamHero;
+ bossLifeBar.Show((ulong)teamHero.curHp, (ulong)teamHero.maxHp);
+ }
+ }
+
+
+ private void OnDamageTaken(BattleDmgInfo info)
+ {
+ if (info.battleFieldGuid != battleField.guid)
+ return;
+
+ if (info.hurtObj.ObjID == bossBattleObject.ObjID)
+ {
+ // Update the boss's health bar
+ RefreshHP();
+ }
+
+ totalDamageDisplayer.SetDamage(info);
}
protected override void OnClose()
@@ -132,8 +249,14 @@
base.CompleteClose();
}
- public void SetBattleField(BattleField _battleField)
+ public void SetBattleField(BoneBattleField _battleField)
{
+ if (battleField != null)
+ {
+ battleField.OnRoundChange -= OnRoundChange;
+ battleField = null;
+ }
+
battleField = _battleField;
if (battleRootNode != null)
{
@@ -156,7 +279,70 @@
ui.SetBattleField(battleField);
battleField.UpdateCanvas(canvas);
-
+ Display();
+ battleField.OnRoundChange += OnRoundChange;
textSpeed.text = (BattleManager.Instance.speedIndex + 1).ToString();
}
+
+ public void DisplaySkillWordsList(NPCLineupConfig lineUPConfig)
+ {
+ if (skillWordCells.IsNullOrEmpty())
+ return;
+
+ if (null == lineUPConfig)
+ return;
+
+ for (int i = 0; i < skillWordCells.Length; i++)
+ {
+ if (i < lineUPConfig.SkillIDExList.Length)
+ {
+ skillWordCells[i].SetActive(true);
+ int skillID = lineUPConfig.SkillIDExList[i];
+ skillWordCells[i].Init(skillID, () =>
+ {
+ SmallTipWin.showText = Language.Get("SmallTipFomat", SkillConfig.Get(skillID)?.SkillName, SkillConfig.Get(skillID)?.Description);
+ SmallTipWin.worldPos = CameraManager.uiCamera.ScreenToWorldPoint(Input.mousePosition);
+ SmallTipWin.isDownShow = true;
+ UIManager.Instance.OpenWindow<SmallTipWin>();
+ });
+ }
+ else
+ {
+ skillWordCells[i].SetActive(false);
+ }
+ }
+ }
+
+ // public void RefreshBuff(List<HB428_tagSCBuffRefresh> datas)
+ // {
+ // if (buffCells.IsNullOrEmpty())
+ // return;
+
+
+ // for (int i = 0; i < buffCells.Count; i++)
+ // {
+ // if (i < datas.Count)
+ // {
+ // buffCells[i].SetActive(true);
+ // HB428_tagSCBuffRefresh buffData = datas[i];
+ // buffCells[i].Init(buffData, () =>
+ // {
+ // // 鐐瑰嚮buff鍥炬爣 鏄剧ずbuff鎻忚堪/褰撳墠韬笂鎵�鏈塨uff
+ // });
+ // }
+ // else
+ // {
+ // buffCells[i].SetActive(false);
+ // }
+ // }
+ // }
+
+ private void OnRoundChange(int round, int maxRound)
+ {
+ txtBattleRound.text = string.Format("{0}/{1}", round, maxRound);
+ }
+ bool IsOpenBattleChangeTab()
+ {
+ return FuncOpen.Instance.IsFuncOpen(ArenaManager.Instance.BattleChangeTabFuncId);
+ }
}
diff --git a/Main/System/ChallengeTab/ChallengeTabWin.cs b/Main/System/ChallengeTab/ChallengeTabWin.cs
index bc04981..5bf2086 100644
--- a/Main/System/ChallengeTab/ChallengeTabWin.cs
+++ b/Main/System/ChallengeTab/ChallengeTabWin.cs
@@ -5,7 +5,7 @@
{
[SerializeField] ChallengeTabButton btnBoneField;
[SerializeField] ChallengeTabButton btnArena;
-
+
protected override void InitComponent()
{
base.InitComponent();
@@ -126,7 +126,24 @@
UIManager.Instance.CloseWindow<ChallengeTabWin>();
if (!FuncOpen.Instance.IsFuncOpen(funcId, true))
return;
- UIManager.Instance.OpenWindow<BoneFieldWin>();
+ BattleField battleField = BattleManager.Instance.GetBattleFieldByMapID(30010);
+ if (battleField != null)
+ {
+ BoneFieldBattleWin battleWin;
+ if (!UIManager.Instance.IsOpened<BoneFieldBattleWin>())
+ {
+ battleWin = UIManager.Instance.OpenWindow<BoneFieldBattleWin>();
+ }
+ else
+ {
+ battleWin = UIManager.Instance.GetUI<BoneFieldBattleWin>();
+ }
+ battleWin.SetBattleField(battleField as BoneBattleField);
+ }
+ else
+ {
+ UIManager.Instance.OpenWindow<BoneFieldWin>();
+ }
});
}
diff --git a/Main/System/Settlement/BattleSettlementManager.cs b/Main/System/Settlement/BattleSettlementManager.cs
index 0e2f583..c55daaf 100644
--- a/Main/System/Settlement/BattleSettlementManager.cs
+++ b/Main/System/Settlement/BattleSettlementManager.cs
@@ -38,6 +38,9 @@
case "ArenaBattleField":
PopupWindowsProcessor.Instance.Add(isWin ? "ArenaBattleVictoryWin" : "ArenaBattleFailWin", false);
break;
+ case "BoneBattleField":
+ PopupWindowsProcessor.Instance.Add(isWin ? "BoneBattleVictoryWin" : "BoneBattleFailWin", false);
+ break;
default:
PopupWindowsProcessor.Instance.Add(isWin ? "BattleVictoryWin" : "BattleFailWin", false);
break;
@@ -59,6 +62,16 @@
UIManager.Instance.OpenWindow<ArenaBattleFailWin>();
}
break;
+ case "BoneBattleField":
+ if (isWin)
+ {
+ UIManager.Instance.OpenWindow<BoneBattleVictoryWin>();
+ }
+ else
+ {
+ UIManager.Instance.OpenWindow<BoneBattleFailWin>();
+ }
+ break;
default:
if (isWin)
{
diff --git a/Main/System/Settlement/BoneBattleFailWin.cs b/Main/System/Settlement/BoneBattleFailWin.cs
new file mode 100644
index 0000000..bb0319d
--- /dev/null
+++ b/Main/System/Settlement/BoneBattleFailWin.cs
@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
+using LitJson;
+using UnityEngine;
+using UnityEngine.UI;
+
+//鎴樺満缁撶畻鐣岄潰锛屽瓨鍦ㄥ涓殑鎯呭喌
+public class BoneBattleFailWin : UIBase
+{
+ [SerializeField] TextEx txtFuncName;
+ [SerializeField] Button tipEquipBtn;
+ [SerializeField] Button tipHeroPosBtn;
+ string battleName = "BoneBattleField";
+ protected override void InitComponent()
+ {
+ tipEquipBtn.AddListener(() =>
+ {
+ CloseWindow();
+ });
+
+ tipHeroPosBtn.AddListener(() =>
+ {
+ CloseWindow();
+ UIManager.Instance.OpenWindow<HeroPosWin>();
+ });
+ }
+
+ protected override void OnPreOpen()
+ {
+ int funcId = BoneFieldManager.Instance.funcId;
+ txtFuncName.text = FuncOpenLVConfig.HasKey(funcId) ? FuncOpenLVConfig.Get(funcId).Name : string.Empty;
+ }
+
+
+ protected override void OnPreClose()
+ {
+ BattleSettlementManager.Instance.WinShowOver(battleName);
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/Settlement/BoneBattleFailWin.cs.meta b/Main/System/Settlement/BoneBattleFailWin.cs.meta
new file mode 100644
index 0000000..a161a1e
--- /dev/null
+++ b/Main/System/Settlement/BoneBattleFailWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 67d3854b366b0f64cb73de975d6aa391
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/System/Settlement/BoneBattleVictoryWin.cs b/Main/System/Settlement/BoneBattleVictoryWin.cs
new file mode 100644
index 0000000..f5c4dba
--- /dev/null
+++ b/Main/System/Settlement/BoneBattleVictoryWin.cs
@@ -0,0 +1,76 @@
+using System.Collections.Generic;
+using Cysharp.Threading.Tasks;
+using UnityEngine;
+
+public class BoneBattleVictoryWin : UIBase
+{
+ [SerializeField] TextEx txtFuncName;
+ [SerializeField] ScrollerController scroller;
+
+ string battleName = "BoneBattleField";
+ protected override void OnPreOpen()
+ {
+ scroller.OnRefreshCell += OnRefreshCell;
+ CreateScroller();
+ int funcId = BoneFieldManager.Instance.funcId;
+ txtFuncName.text = FuncOpenLVConfig.HasKey(funcId) ? FuncOpenLVConfig.Get(funcId).Name : string.Empty;
+ }
+
+
+ protected override void OnPreClose()
+ {
+ scroller.OnRefreshCell -= OnRefreshCell;
+ BattleSettlementManager.Instance.WinShowOver(battleName);
+ }
+
+ List<Item> showItems = new List<Item>();
+ void CreateScroller()
+ {
+ var jsonData = BattleSettlementManager.Instance.GetBattleSettlement(battleName);
+ if (jsonData == null)
+ {
+ DelayCloseWindow().Forget();
+ return;
+ }
+ showItems.Clear();
+ scroller.Refresh();
+
+ if (!jsonData.ContainsKey("itemInfo"))
+ {
+ return;
+ }
+
+ var resultStr = jsonData["itemInfo"];
+ for (int i = 0; i < resultStr.Count; i++)
+ {
+ showItems.Add(new Item((int)resultStr[i]["ItemID"], (long)resultStr[i]["Count"]));
+ }
+
+ showItems.Sort(SortItem);
+ for (int i = 0; i < showItems.Count; i++)
+ {
+ scroller.AddCell(ScrollerDataType.Header, i);
+ }
+ scroller.Restart();
+ }
+
+
+
+ int SortItem(Item itemA, Item itemB)
+ {
+ var itemConfigA = ItemConfig.Get(itemA.id);
+ var itemConfigB = ItemConfig.Get(itemB.id);
+ return itemConfigB.ItemColor - itemConfigA.ItemColor;
+ }
+
+
+
+
+ void OnRefreshCell(ScrollerDataType type, CellView cell)
+ {
+ var _cell = cell as SettlementAwardCell;
+ var item = showItems[cell.index];
+ _cell?.Display(item.id, item.countEx);
+ }
+
+}
\ No newline at end of file
diff --git a/Main/System/Settlement/BoneBattleVictoryWin.cs.meta b/Main/System/Settlement/BoneBattleVictoryWin.cs.meta
new file mode 100644
index 0000000..a09a3c8
--- /dev/null
+++ b/Main/System/Settlement/BoneBattleVictoryWin.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 8c57d47824f8a4e4fb5f62b5cbe99f86
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
--
Gitblit v1.8.0