Files
findthesource/Assets/Scripts/Akciok.cs

314 lines
8.7 KiB
C#
Raw Normal View History

2022-11-07 17:56:31 +01:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
2022-11-14 14:51:43 +01:00
using TMPro;
2022-11-17 16:21:13 +01:00
using System.Linq;
2022-12-05 15:21:52 +01:00
using System;
2022-11-07 17:56:31 +01:00
public class Akciok : MonoBehaviour
{
2022-11-14 14:51:43 +01:00
//Betarazashoz
public TMP_Text[] toltenyek;
private int tolteny_index = 3;
private int felhasznalt_tolteny = 0;
public int betarazott_tolteny = 3;
2022-11-14 15:01:48 +01:00
private Akciopont ap;
2023-01-24 19:35:16 +01:00
public int toltenyszamlalo = 0;
2022-11-14 14:51:43 +01:00
//
2022-11-16 17:09:07 +01:00
//Nyomozashoz
private movement movement;
2022-11-24 17:54:11 +01:00
public TMP_Text[] nyomozas_x;
2022-11-29 09:56:53 +01:00
public TMP_Text[] nyomozas_oszlop;
2022-11-16 17:09:07 +01:00
private string[,] nyomozasok =
{
{"ures", "ures", "ures", "" },
{"ures", "ures", "ures", "" },
{"ures", "ures", "ures", "" },
{"ures", "ures", "ures", "" },
};
2022-11-24 17:54:11 +01:00
2023-01-24 19:35:16 +01:00
2022-11-17 16:21:13 +01:00
//
//Hack
public TMP_Text elso_sor_text;
public TMP_Text[] masodik_sor;
public TMP_Text[] harmadik_sor;
public TMP_Text[] negyedik_sor;
2022-12-07 11:47:31 +01:00
private int[] hackelt_sorok = new int[4];
2022-11-17 16:21:13 +01:00
private Upgrade upgrade;
//
2022-11-16 17:09:07 +01:00
2022-12-07 11:47:31 +01:00
//Source
private Source source;
private bool alpha = false;
private bool omega = false;
//
2023-01-24 19:35:16 +01:00
private void Start()
{
2022-11-14 15:01:48 +01:00
ap = FindObjectOfType<Akciopont>();
2022-11-17 16:21:13 +01:00
movement = FindObjectOfType<movement>();
upgrade = FindObjectOfType<Upgrade>();
2022-12-07 11:47:31 +01:00
source = FindObjectOfType<Source>();
2022-11-14 15:01:48 +01:00
2022-11-14 14:51:43 +01:00
//kezdesnel karikazza be az elso harom adott toltenyt
2023-01-24 19:35:16 +01:00
for (int i = 0; i < tolteny_index; i++)
{
2022-11-14 14:51:43 +01:00
toltenyek[i].text = "O";
}
}
2023-01-24 19:35:16 +01:00
public void Betarazas(int betarazas)
{
if (tolteny_index < 24 && ap.akciopont != 0)
{
if (tolteny_index + betarazas > 23)
{
2022-11-14 15:01:48 +01:00
tolteny_index = 23;
2023-01-24 19:35:16 +01:00
}
else
{
2022-11-14 15:01:48 +01:00
tolteny_index += betarazas;
}
2022-11-14 14:51:43 +01:00
//felhasznalt toltenytol megy hogy az ott levo x-et ne irja felul
2023-01-24 19:35:16 +01:00
for (int i = felhasznalt_tolteny; i < tolteny_index; i++)
{
2022-11-14 14:51:43 +01:00
toltenyek[i].text = "O";
}
2022-11-14 15:01:48 +01:00
betarazott_tolteny += betarazas;
//tolteny_index++;
ap.akciopont--;
2022-11-14 14:51:43 +01:00
Debug.Log("Tolteny betarazva");
Debug.Log("Betarazott toltenyek szama: " + betarazott_tolteny);
}
}
2023-01-24 19:35:16 +01:00
public bool Loves(int elhasznalt_toltenyek)
{
if (felhasznalt_tolteny < betarazott_tolteny)
{
if (felhasznalt_tolteny + elhasznalt_toltenyek > betarazott_tolteny)
{
2022-11-14 14:51:43 +01:00
Debug.Log("Nincs eleg tolteny betarazva, tul sok lenne egyszerre felhasznalva!");
2023-01-23 13:03:35 +01:00
return false;
2023-01-24 19:35:16 +01:00
}
else
{
2022-11-14 14:51:43 +01:00
felhasznalt_tolteny += elhasznalt_toltenyek;
2023-01-24 19:35:16 +01:00
for (int i = 0; i < felhasznalt_tolteny; i++)
{
2022-11-14 14:51:43 +01:00
toltenyek[i].text = "X";
}
2022-11-16 12:24:47 +01:00
betarazott_tolteny -= elhasznalt_toltenyek;
2023-01-24 19:35:16 +01:00
toltenyszamlalo = toltenyszamlalo + elhasznalt_toltenyek;
2022-11-14 14:51:43 +01:00
}
2023-01-23 13:03:35 +01:00
return true;
2023-01-24 19:35:16 +01:00
}
else
{
2022-11-14 14:51:43 +01:00
Debug.Log("Nincs eleg tolteny");
2023-01-23 13:03:35 +01:00
return false;
2022-11-14 14:51:43 +01:00
}
2022-11-16 17:09:07 +01:00
}
//Nyomozas
2023-01-24 19:35:16 +01:00
public void Nyomozas()
{
if (ap.akciopont <= 0)
{
2022-11-16 17:09:07 +01:00
Debug.Log("nincs eleg akciopont");
return;
}
2023-01-24 19:35:16 +01:00
2022-11-18 10:12:04 +01:00
int atirandox = movement.jelenlegi_x - 1;
int atirandoy = movement.jelenlegi_y - 1;
2022-11-16 17:09:07 +01:00
2023-01-24 19:35:16 +01:00
if (nyomozasok[atirandoy, atirandox] == "nyomozott")
{
2022-11-16 17:09:07 +01:00
Debug.Log("Itt mar nyomoztal");
return;
2023-01-24 19:35:16 +01:00
}
else
{
2022-11-16 17:09:07 +01:00
nyomozasok[atirandoy, atirandox] = "nyomozott";
}
2022-11-29 08:02:13 +01:00
int counter = 0;
//egy sorral feljebb megy
2023-01-24 19:35:16 +01:00
for (int i = 0; i < nyomozasok.GetLength(0); i++)
{
for (int j = 0; j < nyomozasok.GetLength(1); j++)
{
if (nyomozasok[i, j].Equals("nyomozott"))
{
2022-11-29 08:02:13 +01:00
nyomozas_x[counter].text = "X";
counter++;
2023-01-24 19:35:16 +01:00
Debug.Log("counter: " + counter);
}
else if (nyomozasok[i, j].Equals("ures"))
{
2022-11-29 09:12:41 +01:00
counter++;
2022-11-29 08:02:13 +01:00
}
}
}
2022-11-24 17:54:11 +01:00
2022-11-17 16:21:13 +01:00
ap.akciopont--;
2022-11-29 09:56:53 +01:00
NyomozasOszlopCheck();
2022-11-30 09:39:57 +01:00
Debug.Log("----------------");
2023-01-24 19:35:16 +01:00
for (int i = 0; i < nyomozasok.GetLength(0); i++)
{
2022-11-16 17:09:07 +01:00
string sor = "";
2023-01-24 19:35:16 +01:00
for (int j = 0; j < nyomozasok.GetLength(1); j++)
{
2022-11-16 17:09:07 +01:00
sor += nyomozasok[i, j] + " ";
}
Debug.Log(sor);
}
2022-11-30 09:39:57 +01:00
Debug.Log("----------------");
2022-11-16 17:09:07 +01:00
}
2022-11-17 16:21:13 +01:00
2023-01-24 19:35:16 +01:00
private void NyomozasOszlopCheck()
{
int oszlop = movement.jelenlegi_x - 1;
2022-11-29 09:56:53 +01:00
int nyomozas_counter = 0;
2023-01-24 19:35:16 +01:00
for (int i = 0; i < 4; i++)
{
if (nyomozasok[i, oszlop].Equals("nyomozott"))
{
2022-11-29 09:56:53 +01:00
nyomozas_counter++;
2022-11-30 09:39:57 +01:00
//Debug.Log(nyomozasok[i, oszlop]);
2022-11-29 09:56:53 +01:00
}
}
Debug.Log("nyomozas counter: " + nyomozas_counter);
2023-01-24 19:35:16 +01:00
if (nyomozas_counter == 4)
{
2022-11-29 09:56:53 +01:00
ap.akciopont += 2;
Debug.Log("Ap novelve");
nyomozas_oszlop[oszlop].text = "X";
}
}
2022-11-17 16:21:13 +01:00
2023-01-24 19:35:16 +01:00
public void Hack()
{
2022-11-17 16:21:13 +01:00
int count = 0;
int rand;
2023-01-24 19:35:16 +01:00
if (ap.akciopont < upgrade.hack[upgrade.getHackIndex()])
{ //van e eleg akicopont
2022-11-17 16:21:13 +01:00
Debug.Log("nincs eleg ap a hackeleshez");
return;
}
2022-12-05 15:21:52 +01:00
int i2 = 0;
2023-01-24 19:35:16 +01:00
try
{
2022-12-05 15:21:52 +01:00
//egy sorban lett e ketszer nyomozva
2023-01-24 19:35:16 +01:00
for (int i = 0; i < 3; i++)
{
2022-12-05 15:21:52 +01:00
//Debug.Log("Belep for");
2023-01-24 19:35:16 +01:00
if (nyomozasok[movement.jelenlegi_y - 1, i] == "nyomozott")
{
2022-12-05 15:21:52 +01:00
count++;
Debug.Log("count: " + count);
2023-01-24 19:35:16 +01:00
i2 = i;
2022-12-05 15:21:52 +01:00
}
2022-11-17 16:21:13 +01:00
}
2023-01-24 19:35:16 +01:00
}
catch (IndexOutOfRangeException)
{
2022-12-05 15:21:52 +01:00
Debug.Log("hiba volt");
Debug.Log("i: " + i2 + " y" + movement.jelenlegi_y);
2022-11-17 16:21:13 +01:00
}
2023-01-24 19:35:16 +01:00
2022-11-17 16:21:13 +01:00
//forras helyenek bejelolese
2023-01-24 19:35:16 +01:00
if (count >= 2 && !hackelt_sorok.Contains(movement.jelenlegi_y))
{
2022-11-18 10:12:04 +01:00
Debug.Log("belep");
2023-01-24 19:35:16 +01:00
if (movement.jelenlegi_y == 1)
{
2022-11-17 16:21:13 +01:00
elso_sor_text.text = "X";
2023-01-24 19:35:16 +01:00
hackelt_sorok[movement.jelenlegi_y - 1] = movement.jelenlegi_y;
2022-12-07 11:47:31 +01:00
source.isNyitva = true;
2023-01-24 19:35:16 +01:00
}
else
{
2022-11-24 17:54:11 +01:00
rand = UnityEngine.Random.Range(1, 7);
2022-11-17 16:21:13 +01:00
Debug.Log("sorsolt szam: " + rand);
2023-01-24 19:35:16 +01:00
if (movement.jelenlegi_y == 2)
{ //alpha, omega
if (rand < 4)
{
2022-11-17 16:21:13 +01:00
masodik_sor[0].text = "X";
2022-12-07 11:47:31 +01:00
alpha = true;
source.sor.Remove(3);//3. sor kiszedes
source.sor.Remove(4);//4. sor kiszedes
2023-01-24 19:35:16 +01:00
}
else
{
2022-11-17 16:21:13 +01:00
masodik_sor[1].text = "X";
2022-12-07 11:47:31 +01:00
omega = true;
source.sor.Remove(1);//1. sor kiszedes
source.sor.Remove(2);//2. sor kiszedes
2022-11-17 16:21:13 +01:00
}
2023-01-24 19:35:16 +01:00
hackelt_sorok[movement.jelenlegi_y - 1] = movement.jelenlegi_y;
}
else if (movement.jelenlegi_y == 3)
{//sor
if (rand < 4)
{
2022-11-17 16:21:13 +01:00
harmadik_sor[0].text = "X";
2022-12-07 11:47:31 +01:00
source.sor.Remove(2);//2. sor kiszedes
source.sor.Remove(4);//4. sor kiszedes
2023-01-24 19:35:16 +01:00
}
else
{
2022-11-17 16:21:13 +01:00
harmadik_sor[1].text = "X";
2022-12-07 11:47:31 +01:00
source.sor.Remove(1);//2. sor kiszedes
source.sor.Remove(3);//4. sor kiszedes
2022-11-17 16:21:13 +01:00
}
2023-01-24 19:35:16 +01:00
hackelt_sorok[movement.jelenlegi_y - 1] = movement.jelenlegi_y;
}
else if (movement.jelenlegi_y == 4)
{
if (rand < 3)
{
2022-11-17 16:21:13 +01:00
negyedik_sor[0].text = "X";
2022-12-07 11:47:31 +01:00
source.oszlop = 1;
2023-01-24 19:35:16 +01:00
}
else if (rand < 5)
{
2022-11-17 16:21:13 +01:00
negyedik_sor[1].text = "X";
2022-12-07 11:47:31 +01:00
source.oszlop = 2;
2023-01-24 19:35:16 +01:00
}
else
{
2022-11-17 16:21:13 +01:00
negyedik_sor[2].text = "X";
2022-12-07 11:47:31 +01:00
source.oszlop = 3;
2022-11-17 16:21:13 +01:00
}
2023-01-24 19:35:16 +01:00
hackelt_sorok[movement.jelenlegi_y - 1] = movement.jelenlegi_y;
2022-11-17 16:21:13 +01:00
}
}
2022-12-05 15:21:52 +01:00
ap.akciopont -= upgrade.hack[upgrade.getHackIndex()]; //ap koltseg levonasa
2023-01-24 19:35:16 +01:00
}
else
{
2022-12-07 11:47:31 +01:00
Debug.Log("itt mar hackeltel");
2022-11-17 16:21:13 +01:00
}
}
2022-11-07 17:56:31 +01:00
}