private void Start() { mStageConfig = Store.NextStageConfig; InitGrid(); InitBlocks(); }
public StageConfig() { _instance = this; }
public ObjectImporter(IList <SceneObject> sourceSceneObjects, IList <SceneObject> targetSceneObjects, StageConfig stageConfig) { InitializeComponent(); rtbWarning.Rtf = Resources.ObjectWarning; _sourceSceneObjects = sourceSceneObjects; _targetSceneObjects = targetSceneObjects; _stageConfig = stageConfig; var targetNames = targetSceneObjects.Select(tso => tso.Name.ToString()); var importableObjects = sourceSceneObjects.Where(sso => !targetNames.Contains(sso.Name.ToString())) .OrderBy(sso => sso.Name.ToString()); if (Properties.Settings.Default.RemoveObjectImportLock == true) { importableObjects = sourceSceneObjects.Where(sso => targetNames.Contains(sso.Name.ToString())) .OrderBy(sso => sso.Name.ToString()); } else { importableObjects = sourceSceneObjects.Where(sso => !targetNames.Contains(sso.Name.ToString())) .OrderBy(sso => sso.Name.ToString()); } foreach (var io in importableObjects) { var lvi = new ListViewItem(io.Name.ToString()) { Checked = false }; lvObjects.Items.Add(lvi); } }
public ObjectImporter(string DataFolder, GameConfig SourceConfig, IList <SceneObject> _TargetObjects, StageConfig _TargetStageConfig, Controls.Editor.MainEditor Instance) { InitializeComponent(); SetupWindow(Instance); TargetObjects = _TargetObjects; TargetStageConfig = _TargetStageConfig; GenerateMegaList(DataFolder, SourceConfig); }
public void UnconditionalShow(int CardID) { if (CsvConfigTables.Instance.MagicCardCsvDic.TryGetValue(CardID, out MCCfg)) { gameObject.SetActive(true); Name.text = MCCfg.Name; if (MagicVal != null) { MagicVal.text = MCCfg.MagicVal.ToString(); } if (Des != null) { Des.text = StringBuilderTool.ToInfoString(" ", MCCfg.Describe.Replace("\\n", "\n")); BoxCollider bc = Des.gameObject.GetComponent <BoxCollider>(); if (bc != null) { bc.center = new Vector3(Des.width / 2, -Des.height / 2, 0); bc.size = new Vector3(Des.width, Des.height, 0); } UITable tab = Des.transform.parent.GetComponent <UITable>(); if (tab != null) { tab.Reposition(); UIScrollView sv = tab.transform.parent.GetComponent <UIScrollView>(); if (sv != null) { sv.ResetPosition(); } } } if (Count != null) { Count.text = SerPlayerData.GetItemCount(MCCfg.CardID).ToString(); } Icon.mainTexture = Resources.Load(StringBuilderTool.ToInfoString("MagicCard/", MCCfg.ColouredIcon)) as Texture; for (int i = 0; i < Star.Length; i++) { Star[i].spriteName = "c_t_star01"; Star[i].gameObject.SetActive(i < MCCfg.StarLv); } if (MCCfg.ThemeID == 101)//恐龙世界 { if (Title != null) { Title.gameObject.SetActive(true); } if (LatinName != null) { LatinName.gameObject.SetActive(true); } if (Epoch != null) { Epoch.gameObject.SetActive(true); } if (Family != null) { Family.gameObject.SetActive(true); } if (Weight != null) { Weight.gameObject.SetActive(false); } if (Height != null) { Height.gameObject.SetActive(true); } if (Habitat != null) { Habitat.gameObject.SetActive(true); } if (Food != null) { Food.gameObject.SetActive(true); } if (Satellite != null) { Satellite.gameObject.SetActive(false); } if (Distance != null) { Distance.gameObject.SetActive(false); } if (Temperature != null) { Temperature.gameObject.SetActive(false); } if (Diameter != null) { Diameter.gameObject.SetActive(false); } if (Day != null) { Day.gameObject.SetActive(false); } if (Year != null) { Year.gameObject.SetActive(false); } if (Time != null) { Time.gameObject.SetActive(false); } if (Ruler != null) { Ruler.gameObject.SetActive(false); } } else if (MCCfg.ThemeID == 102)//动物园 { if (Title != null) { Title.gameObject.SetActive(true); } if (LatinName != null) { LatinName.gameObject.SetActive(true); } if (Epoch != null) { Epoch.gameObject.SetActive(false); } if (Family != null) { Family.gameObject.SetActive(false); } if (Weight != null) { Weight.gameObject.SetActive(true); } if (Height != null) { Height.gameObject.SetActive(true); } if (Habitat != null) { Habitat.gameObject.SetActive(true); } if (Food != null) { Food.gameObject.SetActive(true); } if (Satellite != null) { Satellite.gameObject.SetActive(false); } if (Distance != null) { Distance.gameObject.SetActive(false); } if (Temperature != null) { Temperature.gameObject.SetActive(false); } if (Diameter != null) { Diameter.gameObject.SetActive(false); } if (Day != null) { Day.gameObject.SetActive(false); } if (Year != null) { Year.gameObject.SetActive(false); } if (Time != null) { Time.gameObject.SetActive(false); } if (Ruler != null) { Ruler.gameObject.SetActive(false); } } else if (MCCfg.ThemeID == 103)//海洋世界 { if (Title != null) { Title.gameObject.SetActive(true); } if (LatinName != null) { LatinName.gameObject.SetActive(true); } if (Epoch != null) { Epoch.gameObject.SetActive(false); } if (Family != null) { Family.gameObject.SetActive(false); } if (Weight != null) { Weight.gameObject.SetActive(true); } if (Height != null) { Height.gameObject.SetActive(true); } if (Habitat != null) { Habitat.gameObject.SetActive(true); } if (Food != null) { Food.gameObject.SetActive(true); } if (Satellite != null) { Satellite.gameObject.SetActive(false); } if (Distance != null) { Distance.gameObject.SetActive(false); } if (Temperature != null) { Temperature.gameObject.SetActive(false); } if (Diameter != null) { Diameter.gameObject.SetActive(false); } if (Day != null) { Day.gameObject.SetActive(false); } if (Year != null) { Year.gameObject.SetActive(false); } if (Time != null) { Time.gameObject.SetActive(false); } if (Ruler != null) { Ruler.gameObject.SetActive(false); } } else if (MCCfg.ThemeID == 201)//太阳系 { if (Title != null) { Title.gameObject.SetActive(true); } if (LatinName != null) { LatinName.gameObject.SetActive(true); } if (Epoch != null) { Epoch.gameObject.SetActive(false); } if (Family != null) { Family.gameObject.SetActive(false); } if (Weight != null) { Weight.gameObject.SetActive(false); } if (Height != null) { Height.gameObject.SetActive(false); } if (Habitat != null) { Habitat.gameObject.SetActive(false); } if (Food != null) { Food.gameObject.SetActive(false); } if (Satellite != null) { Satellite.gameObject.SetActive(true); } if (Distance != null) { Distance.gameObject.SetActive(true); } if (Temperature != null) { Temperature.gameObject.SetActive(true); } if (Diameter != null) { Diameter.gameObject.SetActive(true); } if (Day != null) { Day.gameObject.SetActive(true); } if (Year != null) { Year.gameObject.SetActive(true); } if (Time != null) { Time.gameObject.SetActive(false); } if (Ruler != null) { Ruler.gameObject.SetActive(false); } } else if (MCCfg.ThemeID == 601)//春节 { if (Title != null) { Title.gameObject.SetActive(false); } if (LatinName != null) { LatinName.gameObject.SetActive(false); } if (Epoch != null) { Epoch.gameObject.SetActive(false); } if (Family != null) { Family.gameObject.SetActive(false); } if (Weight != null) { Weight.gameObject.SetActive(false); } if (Height != null) { Height.gameObject.SetActive(false); } if (Habitat != null) { Habitat.gameObject.SetActive(false); } if (Food != null) { Food.gameObject.SetActive(false); } if (Satellite != null) { Satellite.gameObject.SetActive(false); } if (Distance != null) { Distance.gameObject.SetActive(false); } if (Temperature != null) { Temperature.gameObject.SetActive(false); } if (Diameter != null) { Diameter.gameObject.SetActive(false); } if (Day != null) { Day.gameObject.SetActive(false); } if (Year != null) { Year.gameObject.SetActive(false); } if (Time != null) { Time.gameObject.SetActive(true); } if (Ruler != null) { Ruler.gameObject.SetActive(false); } } else if (MCCfg.ThemeID == 603)//星座 { if (Title != null) { Title.gameObject.SetActive(false); } if (LatinName != null) { LatinName.gameObject.SetActive(true); } if (Epoch != null) { Epoch.gameObject.SetActive(false); } if (Family != null) { Family.gameObject.SetActive(false); } if (Weight != null) { Weight.gameObject.SetActive(false); } if (Height != null) { Height.gameObject.SetActive(false); } if (Habitat != null) { Habitat.gameObject.SetActive(false); } if (Food != null) { Food.gameObject.SetActive(false); } if (Satellite != null) { Satellite.gameObject.SetActive(false); } if (Distance != null) { Distance.gameObject.SetActive(false); } if (Temperature != null) { Temperature.gameObject.SetActive(false); } if (Diameter != null) { Diameter.gameObject.SetActive(false); } if (Day != null) { Day.gameObject.SetActive(false); } if (Year != null) { Year.gameObject.SetActive(false); } if (Time != null) { Time.gameObject.SetActive(true); } if (Ruler != null) { Ruler.gameObject.SetActive(true); } } if (Bg != null) { switch (MCCfg.Quality) { case 1: Bg.spriteName = "lvbian"; break; case 2: Bg.spriteName = "lanbian"; break; case 3: Bg.spriteName = "zibian"; break; } } if (QualitySign != null) { switch (MCCfg.Quality) { case 1: QualitySign.spriteName = "lvbiao"; break; case 2: QualitySign.spriteName = "lanbiao"; break; case 3: QualitySign.spriteName = "zibiao"; break; } QualitySign.MakePixelPerfect(); } if (System != null) { ChapterConfig cc = null; if (CsvConfigTables.Instance.ChapterCsvDic.TryGetValue(MCCfg.SystemID, out cc)) { System.text = cc.Name; } } if (Theme != null) { GroupConfig gc = null; if (CsvConfigTables.Instance.GroupCsvDic.TryGetValue(MCCfg.ThemeID, out gc)) { Theme.text = gc.Name; } } if (Quality != null) { Quality.text = StringBuilderTool.ToInfoString(ArabicToChinese(MCCfg.Quality), "阶卡"); } if (Epoch != null) { Epoch.text = MCCfg.Epoch; } if (Family != null) { Family.text = MCCfg.Family; } if (LatinName != null) { LatinName.text = MCCfg.LatinName; } if (Height != null) { Height.text = MCCfg.Height; } if (Habitat != null) { Habitat.text = MCCfg.Habitat; } if (Food != null) { Food.text = MCCfg.Food; } if (Weight != null) { if (MCCfg.Weight.Length == 0) { Weight.gameObject.SetActive(false); } Weight.text = MCCfg.Weight; } if (Satellite != null) { if (MCCfg.Satellite.Length == 0) { Satellite.gameObject.SetActive(false); } Satellite.text = MCCfg.Satellite; } if (Temperature != null) { if (MCCfg.Temperature.Length == 0) { Temperature.gameObject.SetActive(false); } Temperature.text = MCCfg.Temperature; } if (Distance != null) { if (MCCfg.Distance.Length == 0) { Distance.gameObject.SetActive(false); } Distance.text = MCCfg.Distance; } if (Diameter != null) { if (MCCfg.Diameter.Length == 0) { Diameter.gameObject.SetActive(false); } Diameter.text = MCCfg.Diameter; } if (Day != null) { if (MCCfg.Day.Length == 0) { Day.gameObject.SetActive(false); } Day.text = MCCfg.Day; } if (Year != null) { if (MCCfg.Year.Length == 0) { Year.gameObject.SetActive(false); } Year.text = MCCfg.Year; } if (Time != null) { if (MCCfg.Time.Length == 0) { Time.gameObject.SetActive(false); } Time.text = MCCfg.Time; } if (Title != null) { if (MCCfg.Title.Length == 0) { Title.gameObject.SetActive(false); } Title.text = MCCfg.Title; } if (GetWayFromStage != null) { bool showShortcut = (MCCfg.Shortcut != 0); GetWayFromStage.gameObject.SetActive(showShortcut); if (showShortcut) { StageConfig sc = null; if (CsvConfigTables.Instance.StageCsvDic.TryGetValue(MCCfg.Shortcut, out sc)) { GetWayFromStage.text = sc.Name; } } } if (EnableCompound != null) { EnableCompound.SetActive(false); } if (NewSign != null) { NewSign.alpha = 0; } switch (MCCfg.StarLv) { case 1: Star[0].transform.localPosition = Vector3.zero; break; case 2: Star[0].transform.localPosition = new Vector3(-12, 0, 0); Star[1].transform.localPosition = new Vector3(12, 0, 0); break; case 3: Star[0].transform.localPosition = new Vector3(-24, 0, 0); Star[1].transform.localPosition = Vector3.zero; Star[2].transform.localPosition = new Vector3(24, 0, 0); break; case 4: Star[0].transform.localPosition = new Vector3(-36, 0, 0); Star[1].transform.localPosition = new Vector3(-12, 0, 0); Star[2].transform.localPosition = new Vector3(12, 0, 0); Star[3].transform.localPosition = new Vector3(36, 0, 0); break; case 5: break; } } else { gameObject.SetActive(false); } }
public void SetStageInfo(int ChapterID, int GroupID) { CurChapterID = ChapterID; CurGroupID = GroupID; //TableRoot = transform.parent.gameObject; //tp = TableRoot.GetComponent<TweenPosition>(); if (StageObjs.Count > 0) { return; } if (GroupExplain_Pic != null && GroupExplain_Title != null && GroupExplain_Explain != null) { GroupConfig gc = null; CsvConfigTables.Instance.GroupCsvDic.TryGetValue(CurGroupID, out gc); if (gc != null) { GroupExplain_Pic.mainTexture = Resources.Load(StringBuilderTool.ToInfoString("MagicCardTheme/", gc.ThemePic)) as Texture; GroupExplain_Title.text = gc.Name; GroupExplain_Explain.text = gc.Explain; } return; } switch (CurGroupIndex) { case 1: case 2: { for (int i = 0; i < transform.childCount; i++) { Transform child = transform.GetChild(i); if (child.name.Contains("Stage")) { StageObjs.Add(child.GetComponent <UI_Stage>()); } } for (int i = 0; i < StageObjs.Count; i++) { StageConfig sc = GetSC(i); if (sc != null) { ((UI_Stage)StageObjs[i]).SetInfo(sc); } } } break; case 3: { for (int i = 0; i < transform.childCount; i++) { Transform child = transform.GetChild(i); if (child.name.Contains("Stage")) { StageObjs.Add(child.GetComponent <UI_Painting>()); } } List <int> EnableUseFishCardIDLst = new List <int>(); foreach (KeyValuePair <int, MagicCardConfig> pair in CsvConfigTables.Instance.MagicCardCsvDic) { if (pair.Value.ThemeID == 103) //只显示已做资源的鱼 { EnableUseFishCardIDLst.Add(pair.Value.CardID); } } for (int i = 0; i < StageObjs.Count; i++) { if (i < EnableUseFishCardIDLst.Count) { MagicCardConfig MCCfg = null; CsvConfigTables.Instance.MagicCardCsvDic.TryGetValue(/*Const.FishCardFirshID + i*/ EnableUseFishCardIDLst[i], out MCCfg); if (MCCfg != null) { ((UI_Painting)StageObjs[i]).SetInfo(MCCfg); } } else { StageObjs[i].gameObject.SetActive(false); Transform lineObj = StageObjs[i].transform.parent.Find(StringBuilderTool.ToString("Line_", i - 1, "_", i)); if (lineObj != null) { lineObj.gameObject.SetActive(false); } } } } break; } }
public ObjectImporter(IList <SceneObject> _SourceObjects, IList <SceneObject> _TargetObjects, StageConfig _TargetStageConfig, Controls.Editor.MainEditor Instance) { InitializeComponent(); SetupWindow(Instance); SourceObjects = _SourceObjects; TargetObjects = _TargetObjects; TargetStageConfig = _TargetStageConfig; GenerateNormalList(); }
public void LoadStage(StageConfig stageConfig) { Store.NextStageConfig = stageConfig; PlayHideAnimation(); GetComponent <SceneLoader>().LoadNextSceneDelay((float)0.33); }
public AnalyzedStage(AnalyzedCampaign campaign, int index) { stage = (this.campaign = campaign).campaign.stages[stageIndex = index]; }
protected void CheckSceneStageConfig() { if (null == m_CurrentStage) { m_CurrentStage = ConfigManager.Instance.GetStageConfig(GetSceneId()); } }
public static bool SaveStagePosition(StageConfig stageConfig) { bool result = true; List <StagePositionConfig> list = new List <StagePositionConfig>(); GameObject root = GameObject.Find("Scene/Caserns"); if (root != null) { int count = root.transform.childCount; for (int i = 0; i < count; i++) { Transform itemTransform = root.transform.GetChild(i); if (itemTransform.gameObject.activeSelf) { UnitCtl unitCtl = itemTransform.GetComponent <UnitCtl>(); if (unitCtl != null && unitCtl.unitData != null && unitCtl.unitData.we_BuildConfigData != null) { UnitData unitData = unitCtl.unitData; WE_BuildConfigData buildConfigData = unitCtl.unitData.we_BuildConfigData; StagePositionConfig positionConfig = new StagePositionConfig(); positionConfig.stageId = stageConfig.id; positionConfig.index = list.Count + 1; positionConfig.position = itemTransform.position; positionConfig.hp = buildConfigData.hp; positionConfig.legionId = unitData.legionId; positionConfig.unitType = unitData.unitType; positionConfig.buildType = unitData.buildType; positionConfig.buildUid = buildConfigData.buildConfig.id; positionConfig.level = unitData.level; positionConfig.settledPriority = buildConfigData.settledPriority; positionConfig.name = buildConfigData.buildConfig.name; positionConfig.stageName = stageConfig.name; list.Add(positionConfig); } } } } root = GameObject.Find("Scene/Walls"); if (root != null) { int count = root.transform.childCount; for (int i = 0; i < count; i++) { Transform itemTransform = root.transform.GetChild(i); if (itemTransform.gameObject.activeSelf) { UnitCtl unitCtl = itemTransform.GetComponent <UnitCtl>(); if (unitCtl != null && unitCtl.unitData != null && unitCtl.unitData.we_BuildConfigData != null) { UnitData unitData = unitCtl.unitData; WE_BuildConfigData buildConfigData = unitCtl.unitData.we_BuildConfigData; StagePositionConfig positionConfig = new StagePositionConfig(); positionConfig.stageId = stageConfig.id; positionConfig.index = list.Count + 1; positionConfig.position = itemTransform.position; positionConfig.hp = buildConfigData.hp; positionConfig.legionId = unitData.legionId; positionConfig.unitType = unitData.unitType; positionConfig.buildType = unitData.buildType; positionConfig.buildUid = buildConfigData.buildConfig.id; positionConfig.level = 0; positionConfig.name = buildConfigData.buildConfig.name; positionConfig.stageName = stageConfig.name; list.Add(positionConfig); } } } } if (War.model.stagePositionConfigs.ContainsKey(stageConfig.id)) { War.model.stagePositionConfigs.Remove(stageConfig.id); } War.model.stagePositionConfigs.Add(stageConfig.id, list); stageConfig.GenerationPositionData(); Save_stage_position_csv(); return(result); }
void CreateStageConfig() { StageNodeStart nodeStart1 = new StageNodeStart(1, 0, "P1", "", "Assets/Res/Icon/cards/ico_head_aoyou"); nodeStart1.NextNodes.Add(10); nodeStart1.NextNodes.Add(11); StageNodeStart nodeStart2 = new StageNodeStart(2, 1, "P2", "", "Assets/Res/Icon/cards/ico_head_aoyou"); nodeStart2.NextNodes.Add(10); nodeStart2.NextNodes.Add(11); StageNodeFight nodeFight1 = new StageNodeFight(10, 0, "Fight", "", "Assets/Res/Icon/cards/ico_head_anduxie"); nodeFight1.SetData(100, 1, 1); nodeFight1.NextNodes.Add(20); nodeFight1.NextNodes.Add(21); StageNodeFight nodeFight2 = new StageNodeFight(20, 1, "Fight", "", "Assets/Res/Icon/cards/ico_head_anduxie"); nodeFight2.SetData(100, 1, 1); nodeFight2.NextNodes.Add(40); StageNodeSafe nodeSafe = new StageNodeSafe(40, 0, "House", "", "Assets/Res/Icon/Item/ico_common_mianzhan"); nodeSafe.NextNodes.Add(30); StageNodeFight nodeFightBoss = new StageNodeFight(30, 0, "FighBoss", "", "Assets/Res/Icon/cards/ico_head_baoshi"); nodeFightBoss.SetData(200, 1, 1); StageNodeReward nodeReward1 = new StageNodeReward(11, 1, "Reward", "", "Assets/Res/Icon/cards/ico_head_guidiao"); Dictionary <int, int> cRewards = new Dictionary <int, int>(); cRewards.Add(10000, 10); cRewards.Add(10001, 20); nodeReward1.AddData("Job", "2", cRewards); nodeReward1.AddData(string.Empty, "", cRewards); nodeReward1.NextNodes.Add(20); nodeReward1.NextNodes.Add(21); StageNodeReward nodeReward2 = new StageNodeReward(21, 0, "Reward", "", "Assets/Res/Icon/cards/ico_head_guidiao"); Dictionary <int, int> cRewards2 = new Dictionary <int, int>(); cRewards2.Add(10000, 11); cRewards2.Add(10001, 21); nodeReward2.AddData("Job", "2", cRewards2); nodeReward2.AddData(string.Empty, "", cRewards2); nodeReward2.NextNodes.Add(40); StageLayer layer0 = new StageLayer(0, "Start", ""); layer0.Nodes.Add(nodeStart1); layer0.Nodes.Add(nodeStart2); StageLayer layer1 = new StageLayer(1, "L1", ""); layer1.Nodes.Add(nodeFight1); layer1.Nodes.Add(nodeReward1); StageLayer layer2 = new StageLayer(2, "L2", ""); layer2.Nodes.Add(nodeFight2); layer2.Nodes.Add(nodeReward2); StageLayer layer3 = new StageLayer(3, "L3", ""); layer3.Nodes.Add(nodeSafe); StageLayer layer4 = new StageLayer(4, "Boss", ""); layer4.Nodes.Add(nodeFightBoss); stageConfig = new StageConfig(0, "Stage First", ""); stageConfig.Layers.Add(layer0); stageConfig.Layers.Add(layer1); stageConfig.Layers.Add(layer2); stageConfig.Layers.Add(layer3); stageConfig.Layers.Add(layer4); stageConfig.ItemIds.Add(20000); stageConfig.Sort(); }
void GUI_StageItem(int index, StageConfig stageConfig) { Texture icon = null; if (stageIcons.ContainsKey(stageConfig.id)) { icon = stageIcons[stageConfig.id]; } else { icon = LoadEditorResource <Texture2D>("StageIcon/" + stageConfig.id + ".png"); stageIcons.Add(stageConfig.id, icon); } if (icon == null) { icon = defaultStageIcon; } GUIContent iconContent = new GUIContent(icon); GUILayout.Space(5); GUILayout.BeginHorizontal(); GUILayout.Label(stageConfig.id + "", guiSkin.label, GUILayout.Width(50), GUILayout.Height(itemHeight)); GUILayout.Space(10); GUILayout.Box(iconContent, guiSkin.box, GUILayout.Width(300), GUILayout.Height(itemHeight)); GUILayout.Space(10); GUILayout.BeginVertical(); GUILayout.Label(stageConfig.name, guiSkin.label, GUILayout.Height(30)); GUILayout.Space(10); if (GUILayout.Button("运行", guiSkin.button, GUILayout.Height(30))) { WarEditor_Instance.Run(stageConfig); } if (GUILayout.Button("编辑", guiSkin.button, GUILayout.Height(30))) { WarEditor_Instance.Open(stageConfig); if (editorIsOpenStageConfigWindow) { WarEditor_StageConfigWindow_Modify.Open(); } } if (GUILayout.Button("克隆", guiSkin.button, GUILayout.Height(30))) { WarEditor_StageConfigWindow_Create.Open(stageConfig); } if (GUILayout.Button("删除", guiSkin.button, GUILayout.Height(30))) { if (EditorUtility.DisplayDialog("删除关卡", "是否真的要删除?", "删除", "取消")) { WarEditor_File.Delete(stageConfig.id); } } GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.Space(5); GUILayout.Box(iconContent, GUILayout.ExpandWidth(true), GUILayout.Height(1)); }
protected void GUIHanlder(StageConfig stageConfig) { scrollPos = EditorGUILayout.BeginScrollView(scrollPos); fold_base = EditorGUILayout.Foldout(fold_base, "基本配置"); if (fold_base) { EditorGUILayout.BeginVertical(style_box_marginleft); if (id == -1 || _stageConfig != stageConfig) { sourceId = id = stageConfig.id; _stageConfig = stageConfig; } id = EditorGUILayout.IntField("编号", id); OnIdChange(stageConfig); stageConfig.name = EditorGUILayout.TextField("名称", stageConfig.name); GUILayout.Space(5); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("描述", GUILayout.Width(100)); stageConfig.description = EditorGUILayout.TextArea(stageConfig.description, GUILayout.Height(50)); EditorGUILayout.EndHorizontal(); GUILayout.Space(5); stageConfig.type = (StageType)EditorGUILayout.IntPopup("关卡类型", (int)stageConfig.type, stageType_names, stageType_ids); stageConfig.level = EditorGUILayout.IntField("等级", stageConfig.level); stageConfig.nextStageId = EditorGUILayout.IntField("解锁关卡", stageConfig.nextStageId); stageConfig.dropId = EditorGUILayout.IntField("掉落", stageConfig.dropId); stageConfig.costStrength = EditorGUILayout.IntField("消耗体力", stageConfig.costStrength); stageConfig.time = EditorGUILayout.IntField("限时", (int)stageConfig.time); EditorGUILayout.ToggleLeft("限时", stageConfig.time > 0); stageConfig.showHP = EditorGUILayout.ToggleLeft("血条开关", stageConfig.showHP); stageConfig.sos = EditorGUILayout.ToggleLeft("求救提示", stageConfig.sos); stageConfig.neutralRoleLevel = EditorGUILayout.IntField("中立主公等级", stageConfig.neutralRoleLevel); stageConfig.winId = EditorGUILayout.IntPopup("胜利条件", stageConfig.winId, win_names, win_ids); GUILayout.Space(10); EditorGUILayout.LabelField("星级评价"); EditorGUILayout.BeginVertical(style_box_marginleft); if (stageConfig.stars.Length < 3) { int[] tempStarts = stageConfig.stars; stageConfig.stars = new int[3]; for (int i = 0; i < tempStarts.Length; i++) { GUILayout.Space(3); stageConfig.stars[i] = tempStarts[i]; GUILayout.Space(3); } } for (int i = 0; i < 3; i++) { stageConfig.stars[i] = EditorGUILayout.IntPopup("星级评价1", stageConfig.stars[i], star_names, star_ids); } EditorGUILayout.EndVertical(); GUILayout.Space(10); EditorGUILayout.EndVertical(); } fold_legionList = EditorGUILayout.Foldout(fold_legionList, "势力列表"); if (fold_legionList) { List <StageLegionConfig> legionList = new List <StageLegionConfig>(); foreach (var legionKVP in stageConfig.legionDict) { legionList.Add(legionKVP.Value); } foreach (StageLegionConfig legionConfig in legionList) { GUILayout.Space(10); EditorGUILayout.BeginHorizontal(); GUILayout.Space(30); if (GUILayout.Button("删除", style_box_center, GUILayout.Width(50), GUILayout.Height(30))) { stageConfig.legionDict.Remove(legionConfig.legionId); } EditorGUILayout.BeginVertical(style_box_legion); legion_toggles[legionConfig.legionId] = GUILayout.Toggle(legion_toggles[legionConfig.legionId], string.Format("<color={2}>势力{0} [{1}--{3}]</color>", legionConfig.legionId, WarColor.Names[legionConfig.color], WarColor.GetUnitHPColor(legionConfig.color).ToStr32(), EnumUtil.GetName <LegionType>(legionConfig.type)), style_label_toggle, GUILayout.ExpandWidth(true), GUILayout.Height(30)); if (legion_toggles[legionConfig.legionId]) { legionConfig.color = EditorGUILayout.IntPopup("颜色", legionConfig.color, WarColor.Names, WarColor.IDs, style_label_IntPopup_color); if (legionConfig.color != legionConfig.legionId) { if (stageConfig.legionDict.ContainsKey(legionConfig.color)) { EditorGUILayout.HelpBox(string.Format("该颜色以被其他势力使用, 请改回'{0}'", WarColor.Names[legionConfig.legionId]), MessageType.Error); } else { stageConfig.legionDict.Remove(legionConfig.legionId); legionConfig.legionId = legionConfig.color; stageConfig.legionDict.Add(legionConfig.legionId, legionConfig); } } legionConfig.type = (LegionType)EditorGUILayout.IntPopup("类型", (int)legionConfig.type, legionType_Names, legionType_ids); legionConfig.groupId = EditorGUILayout.IntPopup("联盟", legionConfig.groupId, group_names, group_ids); // legionConfig.ai = EditorGUILayout.IntPopup("AI", legionConfig.ai, ai_names, ai_ids); legionConfig.robotId = EditorGUILayout.IntField("机器人", legionConfig.robotId); GUILayout.Space(10); legionConfig.produce = EditorGUILayout.ToggleLeft("兵营是否产兵", legionConfig.produce); legionConfig.produceLimit = EditorGUILayout.ToggleLeft("兵营生产是否上限(一般只有中立勾选)", legionConfig.produceLimit); GUILayout.Space(10); legionConfig.aiUplevel = EditorGUILayout.ToggleLeft("是否自动升级", legionConfig.aiUplevel); legionConfig.aiSendArm = EditorGUILayout.ToggleLeft("是否自动派兵", legionConfig.aiSendArm); legionConfig.aiSkill = EditorGUILayout.ToggleLeft("是否自动使用技能", legionConfig.aiSkill); GUILayout.Space(10); // =========================== // EditorGUILayout.LabelField("士兵"); // EditorGUILayout.BeginVertical(style_box_solider); // if(legionConfig.soldierMonsterId > 0) // { // GUI_Solider(legionConfig.soliderMonster); // // if(GUILayout.Button("清除", GUILayout.Height(30))) // { // legionConfig.soldierMonsterId = 0; // } // } // // if(GUILayout.Button("选择", GUILayout.Height(30))) // { // WarEditor_SoliderLibraryWindow.Open(OnSelectSolider, legionConfig); // } // EditorGUILayout.EndVertical(); // =========================== // EditorGUILayout.LabelField("英雄"); // EditorGUILayout.BeginVertical(); // int heroIndex = 0; // for(int i = 0; i < legionConfig.heroIdList.Length; i ++) // { // int heroId = legionConfig.heroIdList[i]; // if(heroId <= 0) continue; // GUI_Hero(heroId, legionConfig, heroIndex, i); // GUILayout.Space(10); // heroIndex ++; // } // // if(GUILayout.Button("添加", GUILayout.Height(30))) // { // WarEditor_HeroLibraryWindow.Open(OnSelectAddHero, legionConfig); // } // // EditorGUILayout.EndVertical(); // =========================== } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); GUILayout.Space(10); } } // fold_legionGroup = EditorGUILayout.Foldout(fold_legionGroup, "势力关系"); // if (fold_legionGroup) // { // for(int i = 0; i < stageConfig.legionGroups.Count; i ++) // { // GUILayout.Box("联盟" + i); // EditorGUILayout.BeginHorizontal(); // // EditorGUILayout.EndHorizontal(); // // } // } EditorGUILayout.EndScrollView(); //------------------------ GUILayout.Space(20); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("应用", GUILayout.Width(100), GUILayout.Height(30))) { if (stageConfig.legionDict.Count < 2) { this.ShowNotification(new GUIContent("请创建势力,势力至少需要2个")); } else { GenerateGroup(stageConfig); WarEditor_Instance.Open(stageConfig); WarEditor_StageConfigWindow_Modify.Open(); } } if (visiable_SaveButton && GUILayout.Button("保存", GUILayout.Width(100), GUILayout.Height(30))) { GenerateGroup(stageConfig); WarEditor_File.SaveStageConfig(stageConfig); } if (stageConfig.legionDict.Count < WarColor.Names.Length && GUILayout.Button("添加势力", GUILayout.Width(100), GUILayout.Height(30))) { int legionId = 0; for (int i = 0; i < WarColor.Names.Length; i++) { if (!stageConfig.legionDict.ContainsKey(i)) { legionId = i; break; } } StageLegionConfig legionConfig = CreateStageLegionConfig(legionId); stageConfig.legionDict.Add(legionConfig.legionId, legionConfig); } EditorGUILayout.EndHorizontal(); }
virtual protected void OnIdChange(StageConfig stageConfig) { }
public void SetConfig(StageConfig config) { currentConfig = config; }