From 8a86368f40b800cfd88e3a9090a70db6bf1af503 Mon Sep 17 00:00:00 2001 From: laurids Date: Wed, 7 Oct 2020 09:26:33 +0200 Subject: [PATCH] Battle UI Part 1 --- Assets/GWConquest/Prefabs/DistrictIcon.prefab | 131 ++++++++++++++++++ Assets/GWConquest/Scenes/GalaxyMap.unity | 8 +- Assets/GWConquest/Scripts/Battle.cs | 12 +- .../GWConquest/Scripts/UI/BattleArmyPanel.cs | 38 +++++ .../Scripts/UI/BattleArmyPanel.cs.meta | 11 ++ .../Scripts/UI/BattleFormationUI.cs | 17 +++ .../Scripts/UI/BattleFormationUI.cs.meta | 11 ++ Assets/GWConquest/Scripts/UI/BattleUI.cs | 14 ++ Assets/GWConquest/Scripts/UI/BattleUI.cs.meta | 11 ++ .../GWConquest/Scripts/UI/BattleUnitIcon.cs | 14 ++ .../Scripts/UI/BattleUnitIcon.cs.meta | 11 ++ Assets/GWConquest/Scripts/UI/DistrictIcon.cs | 12 ++ Assets/GWConquest/Scripts/UI/PlanetViewUI.cs | 15 ++ Assets/GWConquest/Scripts/Zone.cs | 4 + 14 files changed, 307 insertions(+), 2 deletions(-) create mode 100644 Assets/GWConquest/Scripts/UI/BattleArmyPanel.cs create mode 100644 Assets/GWConquest/Scripts/UI/BattleArmyPanel.cs.meta create mode 100644 Assets/GWConquest/Scripts/UI/BattleFormationUI.cs create mode 100644 Assets/GWConquest/Scripts/UI/BattleFormationUI.cs.meta create mode 100644 Assets/GWConquest/Scripts/UI/BattleUI.cs create mode 100644 Assets/GWConquest/Scripts/UI/BattleUI.cs.meta create mode 100644 Assets/GWConquest/Scripts/UI/BattleUnitIcon.cs create mode 100644 Assets/GWConquest/Scripts/UI/BattleUnitIcon.cs.meta diff --git a/Assets/GWConquest/Prefabs/DistrictIcon.prefab b/Assets/GWConquest/Prefabs/DistrictIcon.prefab index d29e3b9..8e4535d 100644 --- a/Assets/GWConquest/Prefabs/DistrictIcon.prefab +++ b/Assets/GWConquest/Prefabs/DistrictIcon.prefab @@ -646,6 +646,7 @@ RectTransform: - {fileID: 2621911208472225555} - {fileID: 2621911208064913515} - {fileID: 2621911207336838695} + - {fileID: 6698525327820101171} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -671,6 +672,7 @@ MonoBehaviour: PlayerIndicator: {fileID: 5754297686137200875} EnemyIndicator: {fileID: 1670534954343448542} animator: {fileID: 2633643605963840149} + BattleIcon: {fileID: 5980683245453820297} --- !u!114 &1344012077935187005 MonoBehaviour: m_ObjectHideFlags: 0 @@ -983,3 +985,132 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!1 &5980683245453820297 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6698525327820101171} + - component: {fileID: 3801364161784695816} + - component: {fileID: 9087994976955860918} + - component: {fileID: 4401698347069670003} + m_Layer: 5 + m_Name: BattleIcon + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 0 +--- !u!224 &6698525327820101171 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5980683245453820297} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 2621911208907321623} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 106.3} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3801364161784695816 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5980683245453820297} + m_CullTransparentMesh: 0 +--- !u!114 &9087994976955860918 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5980683245453820297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.6509804, g: 0.37155354, b: 0.23529409, a: 1} + m_RaycastTarget: 1 + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: bc2b1d353cc325444a4639e32670f558, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4401698347069670003 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5980683245453820297} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 9087994976955860918} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 6530463141977457202} + m_MethodName: OpenBattleMenu + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 diff --git a/Assets/GWConquest/Scenes/GalaxyMap.unity b/Assets/GWConquest/Scenes/GalaxyMap.unity index 41403cc..ea68956 100644 --- a/Assets/GWConquest/Scenes/GalaxyMap.unity +++ b/Assets/GWConquest/Scenes/GalaxyMap.unity @@ -37643,7 +37643,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!224 &765894939 RectTransform: m_ObjectHideFlags: 0 @@ -37702,6 +37702,7 @@ MonoBehaviour: FleetIcons: {fileID: 1739782530} GroundPanel: {fileID: 1659880903} ZonePanel: {fileID: 1472475331} + BattleUI: {fileID: 0} --- !u!1001 &766573527 PrefabInstance: m_ObjectHideFlags: 0 @@ -105760,6 +105761,11 @@ PrefabInstance: propertyPath: m_Pivot.y value: 0.5 objectReference: {fileID: 0} + - target: {fileID: 3634064319767727830, guid: f69b4b94559d7a14d99e0d870647c1f9, + type: 3} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} - target: {fileID: 8309478476779272343, guid: f69b4b94559d7a14d99e0d870647c1f9, type: 3} propertyPath: m_Name diff --git a/Assets/GWConquest/Scripts/Battle.cs b/Assets/GWConquest/Scripts/Battle.cs index ef2373b..ef802d5 100644 --- a/Assets/GWConquest/Scripts/Battle.cs +++ b/Assets/GWConquest/Scripts/Battle.cs @@ -8,12 +8,22 @@ namespace GWConquest public Zone Zone { get => Zone.GetFromId(state.Zone); - set => state.Zone = Zone.GetZoneId(value); + set { + state.Zone = Zone.GetZoneId(value); + transform.position = value.transform.position; + } } public override void Attached() { FormationList = new EntityList(state, "FormationList"); + + state.AddCallback("Zone", () => { + if(state.Zone != -1) + { + Zone.CurrentBattle = this; + } + }); } public void AddFormation(Formation f) diff --git a/Assets/GWConquest/Scripts/UI/BattleArmyPanel.cs b/Assets/GWConquest/Scripts/UI/BattleArmyPanel.cs new file mode 100644 index 0000000..d467239 --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/BattleArmyPanel.cs @@ -0,0 +1,38 @@ +using UnityEngine; +using UnityEngine.UI; +using System.Collections.Generic; +using System.Linq; + +namespace GWConquest { + public class BattleArmyPanel : MonoBehaviour { + + public RectTransform FormationsTransform; + + public Text SelectedUnitNameText; + + public bool IsOwnPlayer; + + public BattleUI BattleUI; + public Battle Battle { + get => BattleUI.Battle; + } + + public IEnumerable GetBattleFormations() + { + if(IsOwnPlayer) + { + + return Battle.FormationList.Where(e => e.GetComponent().Player == Player.CurrentPlayer ); + + } + } + + public List FormationUIList = new List(); + + public void Init(BattleUI ui) + { + BattleUI = ui; + } + + } +} \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/UI/BattleArmyPanel.cs.meta b/Assets/GWConquest/Scripts/UI/BattleArmyPanel.cs.meta new file mode 100644 index 0000000..be953ca --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/BattleArmyPanel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4de2cc3c15927a840beaf69598ef0650 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Scripts/UI/BattleFormationUI.cs b/Assets/GWConquest/Scripts/UI/BattleFormationUI.cs new file mode 100644 index 0000000..96a8368 --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/BattleFormationUI.cs @@ -0,0 +1,17 @@ +using UnityEngine; +using UnityEngine.UI; +using System.Collections.Generic; + +namespace GWConquest { + public class BattleFormationUI : MonoBehaviour { + public BattleUnitIcon LeaderIcon; + public Text FormationNameText; + + public RectTransform IconTransform; + + [System.NonSerialized] + public Formation Formation; + + public List IconList = new List(); + } +} \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/UI/BattleFormationUI.cs.meta b/Assets/GWConquest/Scripts/UI/BattleFormationUI.cs.meta new file mode 100644 index 0000000..9b6205c --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/BattleFormationUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 205d4dd7f14fec84691a6c4bf4e01f4b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Scripts/UI/BattleUI.cs b/Assets/GWConquest/Scripts/UI/BattleUI.cs new file mode 100644 index 0000000..57d106a --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/BattleUI.cs @@ -0,0 +1,14 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace GWConquest { + public class BattleUI : MonoBehaviour { + + public Battle Battle; + + public void SetBattle(Battle battle){ + Battle = battle; + } + + } +} \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/UI/BattleUI.cs.meta b/Assets/GWConquest/Scripts/UI/BattleUI.cs.meta new file mode 100644 index 0000000..05a353e --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/BattleUI.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: fad60b2da41bcc145bd3e07bd21fe9b0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Scripts/UI/BattleUnitIcon.cs b/Assets/GWConquest/Scripts/UI/BattleUnitIcon.cs new file mode 100644 index 0000000..24cca48 --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/BattleUnitIcon.cs @@ -0,0 +1,14 @@ +using UnityEngine; +using UnityEngine.UI; + +namespace GWConquest { + public class BattleUnitIcon : MonoBehaviour { + + public Image IconImage; + + [System.NonSerialized] + public Unit Unit; + + + } +} \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/UI/BattleUnitIcon.cs.meta b/Assets/GWConquest/Scripts/UI/BattleUnitIcon.cs.meta new file mode 100644 index 0000000..2a1c185 --- /dev/null +++ b/Assets/GWConquest/Scripts/UI/BattleUnitIcon.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d0241d79562b81f4bb1f974f21574d1b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/GWConquest/Scripts/UI/DistrictIcon.cs b/Assets/GWConquest/Scripts/UI/DistrictIcon.cs index 20f0113..5ffd854 100644 --- a/Assets/GWConquest/Scripts/UI/DistrictIcon.cs +++ b/Assets/GWConquest/Scripts/UI/DistrictIcon.cs @@ -15,6 +15,8 @@ namespace GWConquest public Animator animator; + public GameObject BattleIcon; + public District district { get; private set; } private bool isSelected = false; @@ -82,6 +84,16 @@ namespace GWConquest { EnemyIndicator.gameObject.SetActive(false); } + + BattleIcon.SetActive(district.Zone.HasBattle); + } + + public void OpenBattleMenu() + { + if(district.Zone.HasBattle) + { + + } } } } \ No newline at end of file diff --git a/Assets/GWConquest/Scripts/UI/PlanetViewUI.cs b/Assets/GWConquest/Scripts/UI/PlanetViewUI.cs index bcec746..71c8a0e 100644 --- a/Assets/GWConquest/Scripts/UI/PlanetViewUI.cs +++ b/Assets/GWConquest/Scripts/UI/PlanetViewUI.cs @@ -30,6 +30,8 @@ namespace GWConquest public DistrictUI GroundPanel; public ZoneUI ZonePanel; + public BattleUI BattleUI; + //public FleetPanelUI GroundPlayerFleetPanel; //public FleetPanelUI GroundEnemyFleetPanel; @@ -224,6 +226,19 @@ namespace GWConquest } + public void ShowBattleUI() + { + GroundPanel.Clear(); + GroundPanel.gameObject.SetActive(false); + ZonePanel.gameObject.SetActive(false); + FleetIcons.gameObject.SetActive(false); + + SpaceIndicatorPanel.SetActive(false); + GroundIndicatorPanel.SetActive(false); + + BattleUI.gameObject.SetActive(true); + } + public void ShowZonePanel() { //GroundIndicatorPanel.SetActive(false); diff --git a/Assets/GWConquest/Scripts/Zone.cs b/Assets/GWConquest/Scripts/Zone.cs index 6c2c425..280e59a 100644 --- a/Assets/GWConquest/Scripts/Zone.cs +++ b/Assets/GWConquest/Scripts/Zone.cs @@ -14,6 +14,10 @@ namespace GWConquest [System.NonSerialized] public Battle CurrentBattle; + public bool HasBattle { + get => CurrentBattle != null; + } + [SerializeField] private int zoneId;