mixedcards/Assets/Battle/BattleParticipantSprite.cs

53 lines
1.5 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BattleParticipantSprite : MonoBehaviour
{
public delegate void SpriteClickedAction(BattleParticipant participant);
public event SpriteClickedAction OnSpriteClicked;
private BattlePlayerControls playerControls;
private BattleParticipant participant;
public void Init(BattlePlayerControls playerControls, BattleParticipant participant) {
this.playerControls = playerControls;
this.participant = participant;
}
// Start is called before the first frame update
void Start() {
gameObject.AddComponent<BoxCollider2D>();
}
// Update is called once per frame
void Update() {
if (colorChanged && !this.playerControls.CouldTarget(participant)) {
OnMouseExit();
}
}
void OnMouseDown() {
OnSpriteClicked(participant);
}
private Color savedColor;
private bool colorChanged;
void OnMouseEnter() {
if (this.playerControls.CouldTarget(participant)) {
SpriteRenderer sprite = GetComponent<SpriteRenderer>();
this.savedColor = sprite.color;
sprite.color = Color.Lerp(this.savedColor, Color.white, .5f);
this.colorChanged = true;
}
}
void OnMouseExit() {
if (this.colorChanged) {
SpriteRenderer sprite = GetComponent<SpriteRenderer>();
sprite.color = this.savedColor;
this.colorChanged = false;
}
}
}