Example #1
0
    public T CreateObject <T>(MAPOBJECT_NAME name, float x, float y) where T : MapObjectBase, new()
    {
        var pool = ObjectPool.I.PullFromPool <T>(name);

        pool.SetPosition(x, y);
        pool.Start();

        _mapObjectList[pool.Type()].Add(pool);

        return(pool as T);
    }
Example #2
0
    /// <summary>
    /// 게임에 나오는 모든 맵오브젝트들은 여기에 추가해줘야 쓸 수 있음
    /// </summary>
    private void CreateObject()
    {
        for (MAPOBJECT_NAME i = 0; i < MAPOBJECT_NAME.MAX; i++)
        {
            switch (i)
            {
            case MAPOBJECT_NAME.PLAYER: { CreateObjectPool <Player>(1); } break;

            case MAPOBJECT_NAME.VAYNE: { CreateObjectPool <Vayne>(5); } break;

            case MAPOBJECT_NAME.BOSS: { CreateObjectPool <Boss>(1); } break;

            case MAPOBJECT_NAME.BLOCK: { CreateObjectPool <Block>(50); } break;

            case MAPOBJECT_NAME.BREAK_BLOCK: { CreateObjectPool <BreakBlock>(50); } break;

            case MAPOBJECT_NAME.BOMB: { CreateObjectPool <Bomb>(8); } break;

            case MAPOBJECT_NAME.EXPLODEBOMB: { CreateObjectPool <ExplodeBomb>(50); } break;

            case MAPOBJECT_NAME.BOMB_KICK: { CreateObjectPool <ItemBombKick>(10); } break;

            case MAPOBJECT_NAME.BOMB_RANGE: { CreateObjectPool <ItemBombRange>(10); } break;

            case MAPOBJECT_NAME.BOMB_COUNT: { CreateObjectPool <ItemBombCount>(10); } break;

            case MAPOBJECT_NAME.MOVE_SPEED: { CreateObjectPool <ItemMoveSpeed>(10); } break;

            case MAPOBJECT_NAME.TRANSFORM_FIRE: { CreateObjectPool <ItemTransformFire>(10); } break;

            case MAPOBJECT_NAME.TRANSFORM_STAR: { CreateObjectPool <ItemTransformStar>(10); } break;

            case MAPOBJECT_NAME.STAGE_PORTAL: { CreateObjectPool <StagePortal>(1); } break;

            case MAPOBJECT_NAME.ARCADE_PORTAL: { CreateObjectPool <ArcadePortal>(1); } break;

            case MAPOBJECT_NAME.SHOP: { CreateObjectPool <Shop>(1); } break;

            case MAPOBJECT_NAME.BAG: { CreateObjectPool <Bag>(1); } break;

            default: break;
            }
        }
    }
Example #3
0
    public T PullFromPool <T>(MAPOBJECT_NAME obj) where T : MapObjectBase, new()
    {
        T returnValue             = null;
        List <MapObjectBase> pool = null;

        if (_dicObjectPool.TryGetValue(obj, out pool))
        {
            if (pool.Count <= 0)
            {
                T newObject = new T();
                return(newObject);
            }

            returnValue = pool[0] as T;
            pool.RemoveAt(0);
            _dicSpawnObject.Add(returnValue, returnValue);
        }

        return(returnValue);
    }
Example #4
0
    public void GetItem(MAPOBJECT_NAME itemName)
    {
        switch (itemName)
        {
        case MAPOBJECT_NAME.BOMB_COUNT:
        {
            if (GameStat.BombCount < GameStat.MaxBombCount)
            {
                InGameBombCount++;
                PlayerStat.ApplyItemStat(0, 1, 0, ref _itemStat);
            }
        }
        break;

        case MAPOBJECT_NAME.BOMB_RANGE:
        {
            if (GameStat.AtkRange < GameStat.MaxAtkRange)
            {
                PlayerStat.ApplyItemStat(1, 0, 0, ref _itemStat);
            }
        }
        break;

        case MAPOBJECT_NAME.MOVE_SPEED:
        {
            if (GameStat.MoveSpeed < GameStat.MaxMoveSpeed)
            {
                PlayerStat.ApplyItemStat(0, 0, 1, ref _itemStat);
            }
        }
        break;

        case MAPOBJECT_NAME.BOMB_KICK:
        {
            _haveKick = true;
        }
        break;

        case MAPOBJECT_NAME.TRANSFORM_FIRE:
        {
            ItemTable table;
            if (TableManager.I.GetItemTable(1, out table) == false)
            {
                System.Diagnostics.Debug.Assert(false, "Item Table Null");
            }

            SetRide('♨', RIDE_TYPE.FIRE, table.Stat);
        }
        break;

        case MAPOBJECT_NAME.TRANSFORM_STAR:
        {
            ItemTable table;
            if (TableManager.I.GetItemTable(2, out table) == false)
            {
                System.Diagnostics.Debug.Assert(false, "Item Table Null");
            }

            SetRide('★', RIDE_TYPE.STAR, table.Stat);
        }
        break;

        default: break;
        }
    }
Example #5
0
 public T GetObject <T>(MAPOBJECT_TYPE type, MAPOBJECT_NAME name)  where T : MapObjectBase
 {
     return(_mapObjectList[type].Find((c) => c.Name() == name) as T);
 }