From 6bf411c22779c345dec7f26ab7dc2aa9e35daffc Mon Sep 17 00:00:00 2001 From: DyatelO Date: Tue, 9 Nov 2021 12:32:45 +0300 Subject: [PATCH] =?UTF-8?q?4=20=D0=BF=D1=83=D0=BD=D0=BA=D1=82.=20=D0=91?= =?UTF-8?q?=D0=B5=D0=B7=20=D0=BD=D0=B5=D0=B2=D0=B8=D0=B4=D0=B8=D0=BC=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prefabs_NEW/Towers/CrystallTower.prefab | 12 +- .../Prefabs_NEW/VFX/CrystalProgectile.prefab | 4 +- Assets/Scripts/PlayerState.cs | 1 + Assets/Scripts/Test/TowerAIAttack.cs | 104 ++++++++++++++++++ Assets/Scripts/Test/TowerAIAttack.cs.meta | 11 ++ 5 files changed, 124 insertions(+), 8 deletions(-) create mode 100644 Assets/Scripts/Test/TowerAIAttack.cs create mode 100644 Assets/Scripts/Test/TowerAIAttack.cs.meta diff --git a/Assets/Prefabs_NEW/Towers/CrystallTower.prefab b/Assets/Prefabs_NEW/Towers/CrystallTower.prefab index 4fa8957a..a8b26fbf 100644 --- a/Assets/Prefabs_NEW/Towers/CrystallTower.prefab +++ b/Assets/Prefabs_NEW/Towers/CrystallTower.prefab @@ -113,8 +113,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f701310aaea215a4d9e0c8646d3e1ecd, type: 3} m_Name: m_EditorClassIdentifier: - nextTileMoveTime: 0.5 - moveDistance: 1 + nextTileMoveTime: 0.25 + moveDistance: 0 moveVFX: {fileID: 0} --- !u!114 &8834890311105204210 MonoBehaviour: @@ -181,8 +181,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: maxAttackEnergy: 3.1 - attackResetTime: 2 - attackCost: 3 + attackResetTime: 2.5 + attackCost: 0 --- !u!114 &1406732623307280272 MonoBehaviour: m_ObjectHideFlags: 0 @@ -231,7 +231,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: isAIActive: 1 - botState: 1 + botState: 2 leftInput: {x: 0, y: 0} rightInput: {x: 0, y: 0} agressiveTime: 30000 @@ -239,7 +239,7 @@ MonoBehaviour: updateBehaviourIn: 0.6 neutralCapDistance: 6 detectDistance: 3 - bonusDetectDistance: 8 + bonusDetectDistance: 0 attackPlayerDistance: 2 bonusPlaceColdown: 4 protectionDistance: 2 diff --git a/Assets/Prefabs_NEW/VFX/CrystalProgectile.prefab b/Assets/Prefabs_NEW/VFX/CrystalProgectile.prefab index c5adfc08..4cb54f22 100644 --- a/Assets/Prefabs_NEW/VFX/CrystalProgectile.prefab +++ b/Assets/Prefabs_NEW/VFX/CrystalProgectile.prefab @@ -82,8 +82,8 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: owner: 0 - velocity: 15 - damage: 380 + velocity: 20 + damage: 440 --- !u!114 &1813624109411210032 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/PlayerState.cs b/Assets/Scripts/PlayerState.cs index 6a226387..1cd6a268 100644 --- a/Assets/Scripts/PlayerState.cs +++ b/Assets/Scripts/PlayerState.cs @@ -71,6 +71,7 @@ public class PlayerState : MonoBehaviour foreach (PlayerState player in players) { // && player.ownerIndex != gameObject.GetComponent().ownerIndex + // (enemies.Count < _towerCount + 3) if ((enemies.Count < _towerCount + 1) && FindObjectOfType() != null diff --git a/Assets/Scripts/Test/TowerAIAttack.cs b/Assets/Scripts/Test/TowerAIAttack.cs new file mode 100644 index 00000000..c5a3973a --- /dev/null +++ b/Assets/Scripts/Test/TowerAIAttack.cs @@ -0,0 +1,104 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class TowerAIAttack : MonoBehaviour +{ + [SerializeField] private AI_BotController _botController; + [SerializeField] private AttackEnergyController _attackEnergyController; + private PlayerState _playerState; + public float attackPlayerDistance = 2f; + public PlayerState _currentEnemy; + + public BotState botState = BotState.Attack; + private bool isAttackedOnce = false; + + + private void Awake() { + _botController.botState = botState; + } + private void Update() { + _botController.botState = botState; + //_currentEnemy = _botController._currentEnemy; + } + + +/* + private bool IsEnemyEnabledForAttack() + { + if (isAttackedOnce) + return false; + if (botState != BotState.Attack && _attackEnergyController.IsReady()) + { + foreach (PlayerState enemy in _playerState.enemies) + { + if (enemy == null) + { + continue; + } + if (!enemy.gameObject.activeSelf) + { + continue; + } + foreach (var dir in TileManagment.basicDirections) + { + for (int i = 1; i <= attackPlayerDistance; i++) + { + TileInfo checkTile = TileManagment.GetTile(_playerState.currentTile.tilePosition, dir, i); + if (checkTile == null || checkTile.tileOwnerIndex == TileOwner.Neutral) + { + break; + } + if (enemy.currentTile == checkTile) + { + _currentEnemy = enemy; + return true; + } + } + } + } + } + return false; + }*/ + private bool SetNewBotState(BotState newState) + { + if (botState != newState) + { + botState = newState; + return true; + } + else + { + return false; + } + } + + private IEnumerator CheckBotState(float updateTime) + { + yield return new WaitForSeconds(UnityEngine.Random.Range(0.5f, 1f)); + + while (true) + { + CheckBotState(); + yield return new WaitForSeconds(0); + } + } + + private void CheckBotState() + { + //Debug.Log("CheckState"); + BotState newBotState; + + + + newBotState = BotState.Attack; + + + + SetNewBotState(newBotState); + + } + + +} + diff --git a/Assets/Scripts/Test/TowerAIAttack.cs.meta b/Assets/Scripts/Test/TowerAIAttack.cs.meta new file mode 100644 index 00000000..8ba8343c --- /dev/null +++ b/Assets/Scripts/Test/TowerAIAttack.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 940264f60c891e8459dc4d90015a0290 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: