private void InitialiseStats()
        {
            IActorTracker            actorTracker  = GameManager.Instance.sceneController.ActorTracker;
            IAssignSceneActorTracker assignTracker = this.GetComponent <IAssignSceneActorTracker>();

            assignTracker.SetSceneActorTracker(actorTracker);

            EnemyInfo enemyInfo = GameManager.Instance.enemySettings.enemyList.Where(x => x.instanceID == referenceID).First().ConvertToEnemyInfo();

            shipData = enemyInfo.GetShipData();

            EnemyStatHandler statHandler = this.GetComponent <EnemyStatHandler>();

            statHandler.InitialiseStats(enemyInfo);

            RegisterToTracker();
        }
Esempio n. 2
0
    public static GameObject DropItem(EnemyStatHandler statHandler, float dropChance)
    {
        if (_collectableItem == null)
        {
            _collectableItem = Resources.Load <GameObject>("Prefabs/Items/Interactible");
        }

        if (_healItem == null)
        {
            _healItem = Resources.Load <GameObject>("Prefabs/Items/HealOrb");
        }

        float value = UnityEngine.Random.Range(0, 1f);

        Debug.Log("DropChance " + value);
        if (value > dropChance)
        {
            return(null);
        }
        float      healChance   = 0.2f;
        float      itemDecision = UnityEngine.Random.Range(0, 1f);
        GameObject interactible;

        if (itemDecision > healChance)
        {
            interactible = GameObject.Instantiate(_collectableItem, statHandler.transform.position, statHandler.transform.rotation);
            interactible.GetComponent <CollectableItem>().Item = GetItemToDrop(statHandler);
        }
        else
        {
            interactible = GameObject.Instantiate(_healItem, statHandler.transform.position, statHandler.transform.rotation);
        }
        if (interactible)
        {
            GameObject.Destroy(interactible, Item.TIME_TO_LIVE); //deletes Item after 1 minute
        }
        return(interactible);
    }
Esempio n. 3
0
    public static Item GetItemToDrop(EnemyStatHandler statHandler)
    {
        int random = UnityEngine.Random.Range(1, 11);
        int value  = 10 - random;

        if (value > 8)
        {
            return(new WildcardItem(1, AbilityUtil.GetRandomWildcard()));
        }
        if (value > 6)
        {
            if (statHandler.sword != null)
            {
                return(new WeaponItem(1, WeaponEnum.blade));
            }
            if (statHandler.shield != null)
            {
                return(new WeaponItem(1, WeaponEnum.magiccore));
            }
            return(new WeaponItem(1, WeaponEnum.barrel));
        }
        return(new ElementItem(1, statHandler.Element));
    }
Esempio n. 4
0
 // Start is called before the first frame update
 void Awake()
 {
     enemyStatHandler      = GetComponent <EnemyStatHandler>();
     navMeshAgent          = GetComponent <NavMeshAgent>();
     enemyAnimationHandler = GetComponent <EnemyAnimationHandler>();
 }