Improve targeting, add Pass Turn button
This commit is contained in:
parent
d7c19e2572
commit
d8af43db53
3 changed files with 43 additions and 14 deletions
|
|
@ -35,6 +35,7 @@ public class BattleController : MonoBehaviour
|
||||||
heroSprites[i].name = "Hero" + i + "_Sprite";
|
heroSprites[i].name = "Hero" + i + "_Sprite";
|
||||||
heroSprites[i].transform.position = new Vector3(-6 + 6 * i, 0, 0);
|
heroSprites[i].transform.position = new Vector3(-6 + 6 * i, 0, 0);
|
||||||
BattleParticipantSprite bps = heroSprites[i].AddComponent<BattleParticipantSprite>();
|
BattleParticipantSprite bps = heroSprites[i].AddComponent<BattleParticipantSprite>();
|
||||||
|
bps.Init(battlePlayerControls);
|
||||||
BattleParticipant participant = heroes[i];
|
BattleParticipant participant = heroes[i];
|
||||||
bps.OnSpriteClicked += delegate() {battlePlayerControls.OnParticipantSpriteClicked(participant);};
|
bps.OnSpriteClicked += delegate() {battlePlayerControls.OnParticipantSpriteClicked(participant);};
|
||||||
|
|
||||||
|
|
@ -55,6 +56,7 @@ public class BattleController : MonoBehaviour
|
||||||
monsterSprites[i].name = "Monster" + i + "_Sprite";
|
monsterSprites[i].name = "Monster" + i + "_Sprite";
|
||||||
monsterSprites[i].transform.position = new Vector3(-6 + 6 * i, 3, 0);
|
monsterSprites[i].transform.position = new Vector3(-6 + 6 * i, 3, 0);
|
||||||
BattleParticipantSprite bps = monsterSprites[i].AddComponent<BattleParticipantSprite>();
|
BattleParticipantSprite bps = monsterSprites[i].AddComponent<BattleParticipantSprite>();
|
||||||
|
bps.Init(battlePlayerControls);
|
||||||
BattleParticipant participant = monsters[i];
|
BattleParticipant participant = monsters[i];
|
||||||
bps.OnSpriteClicked += delegate() {battlePlayerControls.OnParticipantSpriteClicked(participant);};
|
bps.OnSpriteClicked += delegate() {battlePlayerControls.OnParticipantSpriteClicked(participant);};
|
||||||
|
|
||||||
|
|
@ -63,6 +65,7 @@ public class BattleController : MonoBehaviour
|
||||||
}
|
}
|
||||||
|
|
||||||
this.battlePlayerControls.OnCardUsed += this.OnCardUsed;
|
this.battlePlayerControls.OnCardUsed += this.OnCardUsed;
|
||||||
|
this.battlePlayerControls.OnTurnPassed += this.OnTurnPassed;
|
||||||
this.battlePlayerControls.SetHand(5);
|
this.battlePlayerControls.SetHand(5);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -72,16 +75,12 @@ public class BattleController : MonoBehaviour
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void HitRandomParticipant() {
|
|
||||||
if (Random.Range(0f, 1f) < 0.5f) {
|
|
||||||
heroes[Random.Range(0, heroes.Length)].DealDamage(1);
|
|
||||||
} else {
|
|
||||||
monsters[Random.Range(0, monsters.Length)].DealDamage(2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnCardUsed(BaseCard card) {
|
public void OnCardUsed(BaseCard card) {
|
||||||
Debug.Log("OnCardClicked " + card);
|
Debug.Log("OnCardClicked " + card);
|
||||||
StartCoroutine(card.Use(battlePlayerControls));
|
StartCoroutine(card.Use(battlePlayerControls));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnTurnPassed() {
|
||||||
|
Debug.Log("OnTurnPassed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,12 @@ public class BattleParticipantSprite : MonoBehaviour
|
||||||
public delegate void SpriteClickedAction();
|
public delegate void SpriteClickedAction();
|
||||||
public event SpriteClickedAction OnSpriteClicked;
|
public event SpriteClickedAction OnSpriteClicked;
|
||||||
|
|
||||||
|
private BattlePlayerControls playerControls;
|
||||||
|
|
||||||
|
public void Init(BattlePlayerControls playerControls) {
|
||||||
|
this.playerControls = playerControls;
|
||||||
|
}
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
void Start() {
|
void Start() {
|
||||||
gameObject.AddComponent<BoxCollider2D>();
|
gameObject.AddComponent<BoxCollider2D>();
|
||||||
|
|
@ -14,6 +20,9 @@ public class BattleParticipantSprite : MonoBehaviour
|
||||||
|
|
||||||
// Update is called once per frame
|
// Update is called once per frame
|
||||||
void Update() {
|
void Update() {
|
||||||
|
if (colorChanged && !this.playerControls.IsTargeting()) {
|
||||||
|
OnMouseExit();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnMouseDown() {
|
void OnMouseDown() {
|
||||||
|
|
@ -22,15 +31,22 @@ public class BattleParticipantSprite : MonoBehaviour
|
||||||
}
|
}
|
||||||
|
|
||||||
private Color savedColor;
|
private Color savedColor;
|
||||||
|
private bool colorChanged;
|
||||||
|
|
||||||
void OnMouseEnter() {
|
void OnMouseEnter() {
|
||||||
SpriteRenderer sprite = GetComponent<SpriteRenderer>();
|
if (this.playerControls.IsTargeting()) {
|
||||||
this.savedColor = sprite.color;
|
SpriteRenderer sprite = GetComponent<SpriteRenderer>();
|
||||||
sprite.color = Color.Lerp(this.savedColor, Color.white, .5f);
|
this.savedColor = sprite.color;
|
||||||
|
sprite.color = Color.Lerp(this.savedColor, Color.white, .5f);
|
||||||
|
this.colorChanged = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnMouseExit() {
|
void OnMouseExit() {
|
||||||
SpriteRenderer sprite = GetComponent<SpriteRenderer>();
|
if (this.colorChanged) {
|
||||||
sprite.color = this.savedColor;
|
SpriteRenderer sprite = GetComponent<SpriteRenderer>();
|
||||||
|
sprite.color = this.savedColor;
|
||||||
|
this.colorChanged = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ public class BattlePlayerControls : MonoBehaviour
|
||||||
|
|
||||||
public delegate void CardUsedAction(BaseCard card);
|
public delegate void CardUsedAction(BaseCard card);
|
||||||
public event CardUsedAction OnCardUsed;
|
public event CardUsedAction OnCardUsed;
|
||||||
|
public delegate void TurnPassedAction();
|
||||||
|
public event TurnPassedAction OnTurnPassed;
|
||||||
|
|
||||||
private List<BaseCard> cardsInHand;
|
private List<BaseCard> cardsInHand;
|
||||||
private List<GameObject> cardsInHandUIs;
|
private List<GameObject> cardsInHandUIs;
|
||||||
|
|
@ -53,7 +55,9 @@ public class BattlePlayerControls : MonoBehaviour
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnCardClicked(BaseCard card) {
|
private void OnCardClicked(BaseCard card) {
|
||||||
OnCardUsed(card);
|
if (!this.waitingForTarget) {
|
||||||
|
OnCardUsed(card);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool waitingForTarget = false;
|
private bool waitingForTarget = false;
|
||||||
|
|
@ -75,4 +79,14 @@ public class BattlePlayerControls : MonoBehaviour
|
||||||
this.participantClicked = paticipant;
|
this.participantClicked = paticipant;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void PassTurnButtonClicked() {
|
||||||
|
if (!this.waitingForTarget) {
|
||||||
|
OnTurnPassed();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsTargeting() {
|
||||||
|
return this.waitingForTarget;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue