Beispiel #1
0
    private int _GetTotalInterns(bool IncludeWaitingToSpawn)
    {
        int count = 0;

        for (int i = 0; i < mWorld.mUnits.Count; ++i)
        {
            CUnit unit = mWorld.mUnits[i];
            if (unit.mOwner == mPlayerId && unit.mIntern)
            {
                ++count;
            }
        }

        if (IncludeWaitingToSpawn)
        {
            CItemStart itemStart = mWorld.GetEntity <CItemStart>(mWorld.mPlayers[mPlayerId].mSpawnItemID);

            if (itemStart != null)
            {
                for (int i = 0; i < itemStart.mEvents.Count; ++i)
                {
                    if (itemStart.mEvents[i].mType == CElevatorEvent.EType.T_SPAWN_UNIT)
                    {
                        if (itemStart.mEvents[i].mInfo2 == 0)
                        {
                            ++count;
                        }
                    }
                }
            }
        }

        return(count);
    }
    public Vector2 GetSpawnPos()
    {
        CItemStart start = _world.GetEntity <CItemStart>(mSpawnItemID);

        if (start != null)
        {
            return(start.mSpawnPos);
        }

        return(new Vector2(10, 10));
    }
Beispiel #3
0
    /// <summary>
    /// Creates entity and assigns ID.
    /// </summary>
    public static CEntity Create(EType Type, CWorld World, int ID = 0)
    {
        CEntity entity = null;

        switch (Type)
        {
        case EType.UNIT: entity = new CUnit(); break;

        case EType.ITEM_START: entity = new CItemStart(); break;

        case EType.ITEM_DECO: entity = new CItemDeco(); break;

        case EType.ITEM_DESK: entity = new CItemDesk(); break;

        case EType.ITEM_SAFE: entity = new CItemSafe(); break;

        case EType.ITEM_REST: entity = new CItemRest(); break;

        case EType.ITEM_FOOD: entity = new CItemFood(); break;

        case EType.ITEM_DOOR: entity = new CItemDoor(); break;

        case EType.RESUME: entity = new CResume(); break;

        case EType.CONTRACT: entity = new CContract(); break;

        case EType.PICKUP: entity = new CPickup(); break;

        case EType.MISSILE: entity = new CMissile(); break;

        case EType.VOLUME: entity = new CVolume(); break;

        case EType.DECAL: entity = new CDecal(); break;
        }

        if (entity != null)
        {
            _InitNewEntity(entity, World, ID);
        }
        else
        {
            Debug.LogError("Entity Factory couldn't create a " + (int)Type + " is");
        }

        return(entity);
    }