Energy works

This commit is contained in:
henriquenakashima 2020-09-19 00:10:02 -04:00
parent ee8d66610e
commit e59375bbe6
6 changed files with 178 additions and 50 deletions

View file

@ -6,7 +6,8 @@ public class BattleController : MonoBehaviour
{ {
public HeroId[] heroIds; public HeroId[] heroIds;
public MonsterId[] monsterIds; public MonsterId[] monsterIds;
public int maxEnergy = 6;
public HeroInfoUI heroUIPrefab; public HeroInfoUI heroUIPrefab;
public GameObject uiCanvas; public GameObject uiCanvas;
public BattlePlayerControls battlePlayerControls; public BattlePlayerControls battlePlayerControls;
@ -19,6 +20,12 @@ public class BattleController : MonoBehaviour
private GameObject[] monsterSprites; private GameObject[] monsterSprites;
private HeroInfoUI[] monsterUIs; private HeroInfoUI[] monsterUIs;
private int energy;
void Awake() {
this.energy = this.maxEnergy;
}
// Start is called before the first frame update // Start is called before the first frame update
void Start() void Start()
{ {
@ -74,11 +81,36 @@ public class BattleController : MonoBehaviour
} }
public void OnCardUsed(BaseCard card) { public void OnCardUsed(BaseCard card) {
Debug.Log("OnCardClicked " + card); Debug.Log("OnCardUsed " + card);
StartCoroutine(card.Use(battlePlayerControls)); if (!CanUseCard(card)) {
throw new System.InvalidOperationException("Cannot use card " + card.GetDisplayName());
}
StartCoroutine(UseCard(card));
}
public IEnumerator UseCard(BaseCard card) {
yield return card.Use(battlePlayerControls);
PayCardCost(card);
} }
public void OnTurnPassed() { public void OnTurnPassed() {
Debug.Log("OnTurnPassed"); Debug.Log("OnTurnPassed");
this.energy = this.maxEnergy;
}
public bool CanUseCard(BaseCard card) {
return this.energy >= card.GetCost();
}
private void PayCardCost(BaseCard card) {
this.energy -= card.GetCost();
}
public int GetEnergy() {
return this.energy;
}
public int GetMaxEnergy() {
return this.maxEnergy;
} }
} }

View file

@ -28,7 +28,6 @@ public class BattleParticipantSprite : MonoBehaviour
} }
void OnMouseDown() { void OnMouseDown() {
Debug.Log("Clicked " + this.name);
OnSpriteClicked(participant); OnSpriteClicked(participant);
} }

View file

@ -56,7 +56,9 @@ public class BattlePlayerControls : MonoBehaviour
private void OnCardClicked(BaseCard card) { private void OnCardClicked(BaseCard card) {
if (!this.waitingForTarget) { if (!this.waitingForTarget) {
OnCardUsed(card); if (this.battleController.CanUseCard(card)) {
OnCardUsed(card);
}
} }
} }

View file

@ -121,6 +121,57 @@ NavMeshSettings:
debug: debug:
m_Flags: 0 m_Flags: 0
m_NavMeshData: {fileID: 0} m_NavMeshData: {fileID: 0}
--- !u!1 &24180899
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 24180900}
- component: {fileID: 24180901}
m_Layer: 5
m_Name: EnergyUI
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &24180900
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 24180899}
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:
- {fileID: 527589754}
m_Father: {fileID: 35522592}
m_RootOrder: 1
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: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &24180901
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 24180899}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7045cd41e530ab440bda43353370773b, type: 3}
m_Name:
m_EditorClassIdentifier:
text: {fileID: 527589755}
battleController: {fileID: 359124400}
--- !u!1 &35522588 --- !u!1 &35522588
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -211,8 +262,8 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0} m_LocalScale: {x: 0, y: 0, z: 0}
m_Children: m_Children:
- {fileID: 527589754} - {fileID: 1415908914}
- {fileID: 1281365532} - {fileID: 24180900}
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 3 m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -252,6 +303,7 @@ MonoBehaviour:
m_EditorClassIdentifier: m_EditorClassIdentifier:
heroIds: 010000000000000002000000 heroIds: 010000000000000002000000
monsterIds: 000000000100000000000000 monsterIds: 000000000100000000000000
maxEnergy: 6
heroUIPrefab: {fileID: 6641511084601005557, guid: ef1b469b45cedee418e4c4adf577cd00, heroUIPrefab: {fileID: 6641511084601005557, guid: ef1b469b45cedee418e4c4adf577cd00,
type: 3} type: 3}
uiCanvas: {fileID: 35522588} uiCanvas: {fileID: 35522588}
@ -365,7 +417,7 @@ GameObject:
- component: {fileID: 527589756} - component: {fileID: 527589756}
- component: {fileID: 527589755} - component: {fileID: 527589755}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: EnergyText
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
@ -378,17 +430,17 @@ RectTransform:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 527589753} m_GameObject: {fileID: 527589753}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 35522592} m_Father: {fileID: 24180900}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -490, y: -279} m_AnchoredPosition: {x: -467.1, y: -316}
m_SizeDelta: {x: 160, y: 30} m_SizeDelta: {x: 171.60992, y: 30}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &527589755 --- !u!114 &527589755
MonoBehaviour: MonoBehaviour:
@ -403,7 +455,7 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
m_Material: {fileID: 0} m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} m_Color: {r: 0.93333334, g: 0.93333334, b: 0.93333334, a: 1}
m_RaycastTarget: 1 m_RaycastTarget: 1
m_Maskable: 1 m_Maskable: 1
m_OnCullStateChanged: m_OnCullStateChanged:
@ -411,10 +463,10 @@ MonoBehaviour:
m_Calls: [] m_Calls: []
m_FontData: m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0} m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14 m_FontSize: 20
m_FontStyle: 0 m_FontStyle: 1
m_BestFit: 0 m_BestFit: 0
m_MinSize: 10 m_MinSize: 2
m_MaxSize: 40 m_MaxSize: 40
m_Alignment: 3 m_Alignment: 3
m_AlignByGeometry: 0 m_AlignByGeometry: 0
@ -497,7 +549,7 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 4 m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1281365531 --- !u!1 &1415908913
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -505,44 +557,44 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1281365532} - component: {fileID: 1415908914}
- component: {fileID: 1281365535} - component: {fileID: 1415908917}
- component: {fileID: 1281365534} - component: {fileID: 1415908916}
- component: {fileID: 1281365533} - component: {fileID: 1415908915}
m_Layer: 5 m_Layer: 5
m_Name: Button m_Name: PassButton
m_TagString: Untagged m_TagString: Untagged
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: 1
--- !u!224 &1281365532 --- !u!224 &1415908914
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1281365531} m_GameObject: {fileID: 1415908913}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: m_Children:
- {fileID: 1529429807} - {fileID: 2141503600}
m_Father: {fileID: 35522592} m_Father: {fileID: 35522592}
m_RootOrder: 1 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5} m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5} m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 490, y: -279} m_AnchoredPosition: {x: 480.5, y: -314.1}
m_SizeDelta: {x: 160, y: 30} m_SizeDelta: {x: 160, y: 30}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1281365533 --- !u!114 &1415908915
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1281365531} m_GameObject: {fileID: 1415908913}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
@ -575,12 +627,12 @@ MonoBehaviour:
m_SelectedTrigger: Selected m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled m_DisabledTrigger: Disabled
m_Interactable: 1 m_Interactable: 1
m_TargetGraphic: {fileID: 1281365534} m_TargetGraphic: {fileID: 1415908916}
m_OnClick: m_OnClick:
m_PersistentCalls: m_PersistentCalls:
m_Calls: m_Calls:
- m_Target: {fileID: 359124400} - m_Target: {fileID: 1436154611}
m_MethodName: HitRandomParticipant m_MethodName: PassTurnButtonClicked
m_Mode: 1 m_Mode: 1
m_Arguments: m_Arguments:
m_ObjectArgument: {fileID: 0} m_ObjectArgument: {fileID: 0}
@ -590,13 +642,13 @@ MonoBehaviour:
m_StringArgument: m_StringArgument:
m_BoolArgument: 0 m_BoolArgument: 0
m_CallState: 2 m_CallState: 2
--- !u!114 &1281365534 --- !u!114 &1415908916
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1281365531} m_GameObject: {fileID: 1415908913}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
@ -619,13 +671,13 @@ MonoBehaviour:
m_FillOrigin: 0 m_FillOrigin: 0
m_UseSpriteMesh: 0 m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1 m_PixelsPerUnitMultiplier: 1
--- !u!222 &1281365535 --- !u!222 &1415908917
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1281365531} m_GameObject: {fileID: 1415908913}
m_CullTransparentMesh: 0 m_CullTransparentMesh: 0
--- !u!1 &1436154610 --- !u!1 &1436154610
GameObject: GameObject:
@ -656,6 +708,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 9b4d50dd7247d784d9402c81c0d7259d, type: 3} m_Script: {fileID: 11500000, guid: 9b4d50dd7247d784d9402c81c0d7259d, type: 3}
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
battleController: {fileID: 359124400}
uiCanvas: {fileID: 35522588} uiCanvas: {fileID: 35522588}
cardPrefab: {fileID: 2477879196625076711, guid: a2a8de873e36bee42af5fda3c7299574, cardPrefab: {fileID: 2477879196625076711, guid: a2a8de873e36bee42af5fda3c7299574,
type: 3} type: 3}
@ -673,7 +726,7 @@ Transform:
m_Father: {fileID: 0} m_Father: {fileID: 0}
m_RootOrder: 2 m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1529429806 --- !u!1 &2141503599
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
@ -681,9 +734,9 @@ GameObject:
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1529429807} - component: {fileID: 2141503600}
- component: {fileID: 1529429809} - component: {fileID: 2141503602}
- component: {fileID: 1529429808} - component: {fileID: 2141503601}
m_Layer: 5 m_Layer: 5
m_Name: Text m_Name: Text
m_TagString: Untagged m_TagString: Untagged
@ -691,18 +744,18 @@ GameObject:
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 1 m_IsActive: 1
--- !u!224 &1529429807 --- !u!224 &2141503600
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1529429806} m_GameObject: {fileID: 2141503599}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1} m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: [] m_Children: []
m_Father: {fileID: 1281365532} m_Father: {fileID: 1415908914}
m_RootOrder: 0 m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0} m_AnchorMin: {x: 0, y: 0}
@ -710,13 +763,13 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0} m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5} m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1529429808 --- !u!114 &2141503601
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1529429806} m_GameObject: {fileID: 2141503599}
m_Enabled: 1 m_Enabled: 1
m_EditorHideFlags: 0 m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3} m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
@ -742,14 +795,12 @@ MonoBehaviour:
m_HorizontalOverflow: 0 m_HorizontalOverflow: 0
m_VerticalOverflow: 0 m_VerticalOverflow: 0
m_LineSpacing: 1 m_LineSpacing: 1
m_Text: 'Hit random participant m_Text: Pass Turn
--- !u!222 &2141503602
'
--- !u!222 &1529429809
CanvasRenderer: CanvasRenderer:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0} m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1529429806} m_GameObject: {fileID: 2141503599}
m_CullTransparentMesh: 0 m_CullTransparentMesh: 0

33
Assets/EnergyUI.cs Normal file
View file

@ -0,0 +1,33 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class EnergyUI : MonoBehaviour
{
public Text text;
public BattleController battleController;
private int renderedEnergy = -1;
private int renderedMaxEnergy = -1;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (this.renderedEnergy != battleController.GetEnergy() || this.renderedMaxEnergy != battleController.GetMaxEnergy()) {
string currentEnergyString = "" + battleController.GetEnergy();
if (battleController.GetEnergy() == 0) {
currentEnergyString = "<color=red>" + currentEnergyString + "</color>";
}
text.text = "Energy: " + currentEnergyString + " / " + battleController.GetMaxEnergy();
this.renderedEnergy = battleController.GetEnergy();
this.renderedMaxEnergy = battleController.GetMaxEnergy();
}
}
}

11
Assets/EnergyUI.cs.meta Normal file
View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 7045cd41e530ab440bda43353370773b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: