Esempio n. 1
0
    /// <summary>
    /// returns the closest gameobject with a collider on it that is an instance of ParentObject and of the givent type
    /// ignores enemy entities and dead entities
    /// </summary>
    public static GameObject GetNearestEntityByType(int radius, ParentObjectNameEnum entityTypeToFind, Transform center)
    {
        Collider[] collider           = Physics.OverlapSphere(center.position, radius, 256);
        GameObject bestTarget         = null;
        float      closestDistanceSqr = Mathf.Infinity;
        Vector3    currentPosition    = center.position;

        foreach (Collider potentialTarget in collider)
        {
            if (potentialTarget.GetComponent <ParentObject>() != null && potentialTarget.GetComponent <ParentObject>().ObjectName == entityTypeToFind)
            {
                if (potentialTarget.gameObject != center.gameObject.transform.gameObject && potentialTarget.gameObject.GetComponent <Entity>().Owner == OwnerEnum.Player && potentialTarget.gameObject.GetComponent <Entity>().IsAlive() && !potentialTarget.gameObject.GetComponent <Entity>().OnWall)
                {
                    Vector3 directionToTarget = potentialTarget.transform.position - currentPosition;
                    float   dSqrToTarget      = directionToTarget.sqrMagnitude;
                    if (dSqrToTarget < closestDistanceSqr)
                    {
                        closestDistanceSqr = dSqrToTarget;
                        bestTarget         = potentialTarget.gameObject;
                    }
                }
            }
        }
        return(bestTarget);
    }
Esempio n. 2
0
    public GameObject Get(ParentObjectNameEnum objectNameEnum)
    {
        switch (objectNameEnum)
        {
        case ParentObjectNameEnum.Monozyt:
            return(monozyt);

        case ParentObjectNameEnum.B_Lymphozyt:
            return(b_lymphozyt);

        case ParentObjectNameEnum.Makrophag:
            return(makrophag);

        case ParentObjectNameEnum.Tomato:
            return(tomato);

        case ParentObjectNameEnum.Schnupfen:
            return(schnupfen);

        case ParentObjectNameEnum.Malaria:
            return(malaria);

        case ParentObjectNameEnum.Fuchsbandwurm:
            return(fuchsbandwurm);

        case ParentObjectNameEnum.DeathObject:
            return(deathobject);

        default:
            return(null);
        }
    }
Esempio n. 3
0
    private GameObject CreateEntity(ParentObjectNameEnum type)
    {
        Transform parent;

        if (type == ParentObjectNameEnum.Swordsman || type == ParentObjectNameEnum.Horseman || type == ParentObjectNameEnum.Bowman || type == ParentObjectNameEnum.DeathAngel || type == ParentObjectNameEnum.Character || type == ParentObjectNameEnum.Catapult)
        {
            parent = PoolHolder.Instance.Entities.transform;
        }
        else if (type == ParentObjectNameEnum.Arrow || type == ParentObjectNameEnum.Stone)
        {
            parent = PoolHolder.Instance.Arrows.transform;
        }
        else if (type == ParentObjectNameEnum.UpgradeParticles || type == ParentObjectNameEnum.FireballImpact || type == ParentObjectNameEnum.IceballImpact || type == ParentObjectNameEnum.HealImpact)
        {
            parent = PoolHolder.Instance.Particles.transform;
        }
        else
        {
            parent = PoolHolder.Instance.Buildings.transform;
        }
        GameObject gObject = Instantiate(PrefabHolder.Instance.Get(type), parent);

        pool.Add(gObject);
        return(gObject);
    }
Esempio n. 4
0
    private void CreatePool(ParentObjectNameEnum type)
    {
        Pool poolToAdd = gameObject.AddComponent <Pool>();

        poolToAdd.Type = type;
        poolToAdd.Size = 10;
        pools.Add(poolToAdd);
    }
Esempio n. 5
0
    public GameObject GetRenderObject(ParentObjectNameEnum type)
    {
        switch (type)
        {
        case ParentObjectNameEnum.Character:
            return(characterPrefabinternal);

        case ParentObjectNameEnum.Swordsman:
            return(swordsmanPrefabInternal);

        case ParentObjectNameEnum.Bowman:
            return(bowmanPrefabInternal);

        case ParentObjectNameEnum.Horseman:
            return(horsemanPrefabInternal);

        case ParentObjectNameEnum.Settler:
            return(settlerPrefabInternal);

        case ParentObjectNameEnum.Catapult:
            return(catapultPrefabInternal);

        case ParentObjectNameEnum.Forge:
            return(forgePrefabInternal);

        case ParentObjectNameEnum.Mainhouse:
            return(mainhousePrefabInternal);

        case ParentObjectNameEnum.Farm:
            return(farmPrefabInternal);

        case ParentObjectNameEnum.Mine:
            return(minePrefabInternal);

        case ParentObjectNameEnum.Barracks:
            return(barracksPrefabInternal);

        case ParentObjectNameEnum.WoodWall:
            return(woodenWallPrefabInternal);

        case ParentObjectNameEnum.StoneWall:
            return(stoneWallPrefabInternal);

        case ParentObjectNameEnum.StoneTower:
            return(stoneTowerPrefabInternal);

        default:
            return(null);
        }
    }
Esempio n. 6
0
 private Pool GetRightPool(ParentObjectNameEnum type)
 {
     if (pools.Count > 0)
     {
         foreach (Pool item in pools)
         {
             if (item.Type == type)
             {
                 return(item);
             }
         }
     }
     CreatePool(type);
     return(GetRightPool(type));
 }
Esempio n. 7
0
    private GameObject CreateEntity(ParentObjectNameEnum type)
    {
        Transform parent;

        if (type == ParentObjectNameEnum.Tomato || type == ParentObjectNameEnum.Malaria || type == ParentObjectNameEnum.Schnupfen)
        {
            parent = PoolHolder.Instance.Entities.transform;
        }
        else
        {
            parent = PoolHolder.Instance.Buildings.transform;
        }
        GameObject gObject = Instantiate(PrefabHolder.Instance.Get(type), parent);

        gObject.SetActive(false);
        pool.Add(gObject);
        return(gObject);
    }
Esempio n. 8
0
    public void SetImage(ParentObjectNameEnum parentName)
    {
        switch (parentName)
        {
        case ParentObjectNameEnum.Monozyt:
            renderCamera.transform.position = monozytCameraParent.transform.position;
            break;

        case ParentObjectNameEnum.B_Lymphozyt:
            renderCamera.transform.position = B_LymphozytCameraParent.transform.position;
            break;

        case ParentObjectNameEnum.Makrophag:
            renderCamera.transform.position = MakrophagCameraParent.transform.position;
            break;

        case ParentObjectNameEnum.Tomato:
            break;

        default:
            break;
        }
    }
Esempio n. 9
0
 public EntitySaveData(OwnerEnum owner, ParentObjectNameEnum objectName, EntityStateEnum entityState, int maxLevel, int currentLevel, float maxHealthpoints, float currentHealthPoints, int buildCost, int buildTime, float armor, EntityActionStateEnum entityActionState, EntityBehaviourEnum entityBehaviour, float baseDamage, float movementSpeed, float viewDistance, float attackRange, float attackDelay, int foodValue, SoundHolder dieSoundHolder, SoundHolder fightSoundHolder, int experience)
 {
     this.owner               = owner;
     this.objectName          = objectName;
     this.entityState         = entityState;
     this.maxLevel            = maxLevel;
     this.currentLevel        = currentLevel;
     this.maxHealthpoints     = maxHealthpoints;
     this.currentHealthPoints = currentHealthPoints;
     this.buildCost           = buildCost;
     this.buildTime           = buildTime;
     this.armor               = armor;
     this.entityActionState   = entityActionState;
     this.entityBehaviour     = entityBehaviour;
     this.baseDamage          = baseDamage;
     this.movementSpeed       = movementSpeed;
     this.viewDistance        = viewDistance;
     this.attackRange         = attackRange;
     this.attackDelay         = attackDelay;
     this.foodValue           = foodValue;
     this.dieSoundHolder      = dieSoundHolder;
     this.fightSoundHolder    = fightSoundHolder;
     this.experience          = experience;
 }
Esempio n. 10
0
 public ParentObject GetInfo(ParentObjectNameEnum objectNameEnum)
 {
     return(Get(objectNameEnum).GetComponent <ParentObject>());
 }
Esempio n. 11
0
 public GameObject GetObject(ParentObjectNameEnum type)
 {
     return(GetRightPool(type).GetPoolObject(false));
 }
Esempio n. 12
0
 public GameObject GetObjectActive(ParentObjectNameEnum type)
 {
     return(GetRightPool(type).GetPoolObject(true));
 }
Esempio n. 13
0
    public GameObject Get(ParentObjectNameEnum objectNameEnum)
    {
        switch (objectNameEnum)
        {
        case ParentObjectNameEnum.Character:
            return(characterPrefabInternal);

        case ParentObjectNameEnum.Swordsman:
            return(swordsmanPrefabInternal);

        case ParentObjectNameEnum.Bowman:
            return(bowmanPrefabInternal);

        case ParentObjectNameEnum.Horseman:
            return(horsemanPrefabInternal);

        case ParentObjectNameEnum.Catapult:
            return(catapultPrefabInternal);

        case ParentObjectNameEnum.Forge:
            return(forgePrefabInternal);

        case ParentObjectNameEnum.Mainhouse:
            return(mainhousePrefabInternal);

        case ParentObjectNameEnum.Farm:
            return(farmPrefabInternal);

        case ParentObjectNameEnum.Mine:
            return(minePrefabInternal);

        case ParentObjectNameEnum.Barracks:
            return(barracksPrefabInternal);

        case ParentObjectNameEnum.WoodWall:
            return(woodenWallPrefabInternal);

        case ParentObjectNameEnum.StoneWall:
            return(stoneWallPrefabInternal);

        case ParentObjectNameEnum.StoneTower:
            return(stoneTowerPrefabInternal);

        case ParentObjectNameEnum.Arrow:
            return(arrowPrefabInternal);

        case ParentObjectNameEnum.Stone:
            return(stonePrefabInternal);

        case ParentObjectNameEnum.UpgradeParticles:
            return(upgradeParticlesPrefabInternal);

        case ParentObjectNameEnum.DeathAngel:
            return(deathAngelPrefabInternal);

        case ParentObjectNameEnum.DeathObject:
            return(deathObjectPrefabInternal);

        case ParentObjectNameEnum.FireballImpact:
            return(fireballImpactPrefabInternal);

        case ParentObjectNameEnum.IceballImpact:
            return(iceballImpactPrefabInternal);

        case ParentObjectNameEnum.HealImpact:
            return(healImpactPrefabInternal);

        case ParentObjectNameEnum.SelectionCircle:
            return(selectionCirclePrefabInternal);

        case ParentObjectNameEnum.Settler:
            return(settlerPrefabInternal);

        default:
            return(null);
        }
    }