Skip to content

Commit dc51d35

Browse files
committed
AI improvement
1 parent b48c9f0 commit dc51d35

File tree

12 files changed

+60
-71
lines changed

12 files changed

+60
-71
lines changed

Assets/ScriptableObjects/Databases/TeamDatabase.asset

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,22 @@ MonoBehaviour:
1515
_teams:
1616
- _teamName: Player
1717
_allyTeams:
18-
- Aliance
18+
- _teamName: Aliance
19+
_inSightBehaviour: 0
1920
_enemiesTeams:
20-
- Enemy
21+
- _teamName: Corp
22+
_inSightBehaviour: 0
2123
- _teamName: Aliance
2224
_allyTeams:
23-
- Player
25+
- _teamName: Player
26+
_inSightBehaviour: 5
2427
_enemiesTeams:
25-
- Enemy
26-
- _teamName: Enemy
28+
- _teamName: Corp
29+
_inSightBehaviour: 3
30+
- _teamName: Corp
2731
_allyTeams: []
2832
_enemiesTeams:
29-
- Player
33+
- _teamName: Aliance
34+
_inSightBehaviour: 3
35+
- _teamName: Player
36+
_inSightBehaviour: 3

Assets/Scripts/Editor/BoxEntityEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public override void OnInspectorGUI()
1616
{
1717
base.OnInspectorGUI();
1818

19-
FindObjectOfType<GameVariables>().Awake();
19+
FindObjectOfType<GameController>().Awake();
2020
EditorGUI.BeginChangeCheck();
2121

2222
BoxEntity box = target.GetComponent<BoxEntity>();

Assets/Scripts/Entities/Bullet.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ private void TryDamage(RaycastHit hit)
4040

4141
var unit = hit.collider.GetComponent<Unit>();
4242
unit?.Damage(_damage);
43-
if (GameVariables.hitBoxPopupState)
43+
if (GameController.hitBoxPopupState)
4444
{
45-
var hitPopup = Instantiate(GameVariables.gamePrefabDatabase.hitPopupPrefab) as HitPopup;
45+
var hitPopup = Instantiate(GameController.gamePrefabDatabase.hitPopupPrefab) as HitPopup;
4646
hitPopup.transform.position = hit.point;
4747
hitPopup.Setup(_damage);
4848
}

Assets/Scripts/Entities/ItemBox.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ public class ItemBox : BoxEntity
1313
ItemObject _itemObject;
1414

1515
public ItemBox(ItemObject itemObject) => _itemObject = itemObject;
16-
public override List<ItemObject> boxContent => GameVariables.GetAllItems();
16+
public override List<ItemObject> boxContent => GameController.GetAllItems();
1717
public override string boxContentName => "Item";
1818

1919

2020
void Start() => Setup(_selectedIndex);
2121
public override void Setup(int itemIndex)
2222
{
2323
if(itemIndex < 1) return;
24-
_itemObject = GameVariables.GetItem(itemIndex - 1);
24+
_itemObject = GameController.GetItem(itemIndex - 1);
2525
_nameText.text = _itemObject.localizedName;
2626
}
2727

Assets/Scripts/Entities/WeaponBox.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ public class WeaponBox : BoxEntity
1212

1313
public WeaponBox(WeaponObject weaponObject) => _weaponObject = weaponObject;
1414

15-
public override List<ItemObject> boxContent => GameVariables.GetAllWeapons().Cast<ItemObject>().ToList();
15+
public override List<ItemObject> boxContent => GameController.GetAllWeapons().Cast<ItemObject>().ToList();
1616
public override string boxContentName => "Weapon";
1717

1818

1919
void Start() => Setup(_selectedIndex);
2020
public override void Setup(int itemIndex)
2121
{
2222
if(itemIndex < 1) return;
23-
_weaponObject = GameVariables.GetWeapon(itemIndex - 1);
23+
_weaponObject = GameController.GetWeapon(itemIndex - 1);
2424
_nameText.text = _weaponObject.localizedName;
2525
}
2626
public override void Pickup(Unit player)

Assets/Scripts/GameController.cs

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,37 @@
1+
using Reckless.Items;
12
using System.Collections;
23
using System.Collections.Generic;
4+
using Reckless.Entities;
35
using UnityEngine;
6+
using UnityEngine.Serialization;
47

58
namespace Reckless
69
{
710
public class GameController : MonoBehaviour
811
{
9-
// Start is called before the first frame update
10-
void Start()
11-
{
12+
public static GameController instance { get; private set; }
1213

13-
}
14+
[SerializeField] ItemsDatabase _itemsDatabase;
15+
[SerializeField] WeaponsDatabase _weaponsDatabase;
16+
[SerializeField] GamePrefabDatabase _gamePrefabDatabase;
17+
[SerializeField] UnitTeamDatabase _unitTeamDatabase;
18+
[SerializeField] bool _hitBoxPopupState = true;
19+
20+
21+
public static GamePrefabDatabase gamePrefabDatabase => instance._gamePrefabDatabase;
22+
public static bool hitBoxPopupState => instance._hitBoxPopupState;
1423

15-
// Update is called once per frame
16-
void Update()
24+
public void Awake()
1725
{
18-
26+
instance = this;
1927
}
28+
29+
public static ItemObject GetItem(string id) => instance._itemsDatabase?.GetItem(id);
30+
public static UnitTeam GetTeam(string name) => instance._unitTeamDatabase?.teams.Find(x => x.teamName == name);
31+
public static ItemObject GetItem(int index) => instance._itemsDatabase?.GetItem(index);
32+
public static List<ItemObject> GetAllItems() => instance._itemsDatabase?.GetAllItems();
33+
public static WeaponObject GetWeapon(string id) => instance._weaponsDatabase?.GetWeapon(id);
34+
public static WeaponObject GetWeapon(int index) => instance._weaponsDatabase?.GetWeapon(index);
35+
public static List<WeaponObject> GetAllWeapons() => instance._weaponsDatabase?.GetAllWeapons();
2036
}
21-
}
37+
}

Assets/Scripts/GameController.cs.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Scripts/GameVariables.cs

Lines changed: 0 additions & 36 deletions
This file was deleted.

Assets/Scripts/GameVariables.cs.meta

Lines changed: 0 additions & 11 deletions
This file was deleted.

Assets/Scripts/Units/NPC/Npc.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ public class Npc : Unit
1313
[SerializeField] List<NpcAbility> _abilities;
1414

1515
[SerializeField] NpcState _npcState;
16+
[SerializeField] string _npcTeam;
17+
public UnitTeam npcTeam => GameController.GetTeam(_npcTeam);
1618
public NpcState npcState => _npcState;
1719

1820
[SerializeField] Unit _goal;

Assets/Scripts/Units/NPC/NpcSightAbility.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ public class NpcSightAbility : NpcAbility
1010
[SerializeField] float _sightAngle = 120;
1111
[SerializeField] List<Unit> _unitsInSight;
1212
[SerializeField] Vector3 _scanOffset;
13+
14+
[SerializeField] NpcState _stateOnSeeAnyone;
1315

1416
public List<Unit> unitsInSight => _unitsInSight;
1517
public override void PerformUpdate(Npc npc)

Assets/Scripts/Units/UnitTeam.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Reckless.Units.AI;
12
using System.Collections;
23
using System.Collections.Generic;
34
using UnityEngine;
@@ -8,7 +9,15 @@ namespace Reckless
89
public class UnitTeam
910
{
1011
[SerializeField] string _teamName;
11-
[SerializeField] List<string> _allyTeams;
12-
[SerializeField] List<string> _enemiesTeams;
12+
public string teamName => _teamName;
13+
[SerializeField] List<TeamRule> _allyTeams;
14+
[SerializeField] List<TeamRule> _enemiesTeams;
15+
16+
[System.Serializable]
17+
public class TeamRule
18+
{
19+
[SerializeField] string _teamName;
20+
[SerializeField] NpcState _inSightBehaviour;
21+
}
1322
}
1423
}

0 commit comments

Comments
 (0)