Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class EnemySpawnController : MonoBehaviour
{
[SerializeField] List<Opponent> enemyList;
[SerializeField] List<Image> enemySprites;
Dictionary<Opponent, Image> enemys = new Dictionary<Opponent, Image>();
StatsManager statsManager;
float mana;
Opponent activeSpawn;
[SerializeField] GameObject dragObject;
GameObject enemyImage;
private void Awake()
{
statsManager = FindObjectOfType<StatsManager>();
mana = -1;
for (int i = 0; i < enemyList.Count; i++)
{
enemys.Add(enemyList[i], enemySprites[i]);
}
}
// Update is called once per frame
void Update()
{
if (mana != statsManager.GetMana())
{
mana = statsManager.GetMana();
ChangeActiveState();
}
}
void ChangeActiveState()
{
foreach (KeyValuePair<Opponent, Image> enemy in enemys)
{
if (enemy.Key.enemyCost > mana)
{
enemy.Value.color = new Color(0.3f,0.3f,0.3f,1f);
}
else
{
enemy.Value.color = new Color(1f,1f,1f,1f);
}
}
}
void SetEnemyToSpawnObject(string enemyName)
{
foreach (Opponent enemy in enemyList)
{
if (enemy.Name == enemyName)
{
activeSpawn = enemy;
}
}
}
public void OnEnemyMouseDown(string enemyName)
{
SetEnemyToSpawnObject(enemyName);
if (statsManager.ModifyMana(-1*(int)activeSpawn.enemyCost))
{
dragObject.GetComponent<Image>().sprite = activeSpawn.EnemySprite;
enemyImage = Instantiate(dragObject, PositionPrefab(), Quaternion.identity,transform);
}
}
Vector3 PositionPrefab()
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
pos.z = 0;
return pos;
}
public void OnEnemyDrag()
{
if (enemyImage != null)
{
enemyImage.transform.position = PositionPrefab();
}
}
public void OnEnemyDrop()
{
Destroy(enemyImage);
enemyImage = null;
Instantiate(activeSpawn.enemyPrefab,PositionPrefab(),Quaternion.identity);
}
}