예제 #1
0
    // ?⑥뼱???덈뒗 ?꾩씠??以띻린.
    public ItemController   pickItem(QueryItemPick query, string owner_id, string item_id)
    {
        // ?꾨줈洹몃옩??踰꾧렇瑜?留됯퀬??荑쇰━媛€ ?놁쑝硫?
        // 以띿? 紐삵븯寃??덈떎.

        ItemController item = null;

        do
        {
            // ?쇰떒 荑쇰━??寃곌낵??泥댄겕.
            if (!query.isSuccess())
            {
                break;
            }

            item = this.find_item(item_id);

            if (item == null)
            {
                break;
            }

            item.picker = owner_id;
            item.startPicked();

            if (item_id.StartsWith("key"))
            {
                PartyControl.get().pickKey(item_id, owner_id);
            }
        } while(false);

        return(item);
    }
예제 #2
0
    // 떨어져 있는 아이템 줍기.
    public ItemController   pickItem(QueryItemPick query, string owner_id, string item_id)
    {
        // 프로그램의 버그를 막고자 쿼리가 없으면.
        // 줍지 못하게 했다.

        ItemController item = null;

        do
        {
            // 일단 쿼리의 결과도 체크.
            if (!query.isSuccess())
            {
                break;
            }

            item = this.find_item(item_id);

            if (item == null)
            {
                break;
            }

            item.picker = owner_id;
            item.startPicked();

            if (item_id.StartsWith("key"))
            {
                PartyControl.get().pickKey(item_id, owner_id);
            }
        } while(false);

        return(item);
    }
예제 #3
0
    // 떨어져 있는 아이템을 줍습니다.
    public ItemController   pickItem(QueryItemPick query, string owner_id, string item_id)
    {
        // 프로그램의 버그를 막고자 쿼리가 없으면
        // 주울 수 없게 했습니다.

        ItemController item = null;

        do
        {
            // 일단 쿼리 결과도 체크합니다.
            if (!query.isSuccess())
            {
                break;
            }

            item = this.find_item(item_id);

            if (item == null)
            {
                break;
            }

            item.picker = owner_id;
            item.startPicked();
        } while(false);

        return(item);
    }
예제 #4
0
	// 떨어져 있는 아이템 줍기.
	public ItemController	pickItem(QueryItemPick query, string owner_id, string item_id)
	{
		// 프로그램의 버그를 막고자 쿼리가 없으면.
		// 줍지 못하게 했다.

		ItemController	item = null;
		
		do {
			
			// 일단 쿼리의 결과도 체크.
			if(!query.isSuccess()) {

				break;
			}
	
			item = this.find_item(item_id);
			
			if(item == null) {
				
				break;
			}

			item.picker = owner_id;
			item.startPicked();

			if (item_id.StartsWith("key")) {
				PartyControl.get().pickKey(item_id, owner_id);
			}

		} while(false);

		return(item);
	}
예제 #5
0
	// ?⑥뼱???덈뒗 ?꾩씠??以띻린.
	public ItemController	pickItem(QueryItemPick query, string owner_id, string item_id)
	{
		// ?꾨줈洹몃옩??踰꾧렇瑜?留됯퀬??荑쇰━媛€ ?놁쑝硫?
		// 以띿? 紐삵븯寃??덈떎.

		ItemController	item = null;
		
		do {
			
			// ?쇰떒 荑쇰━??寃곌낵??泥댄겕.
			if(!query.isSuccess()) {

				break;
			}
	
			item = this.find_item(item_id);
			
			if(item == null) {
				
				break;
			}

			item.picker = owner_id;
			item.startPicked();

			if (item_id.StartsWith("key")) {
				PartyControl.get().pickKey(item_id, owner_id);
			}

		} while(false);

		return(item);
	}
예제 #6
0
	private void	resolve_pick_item_query(QueryItemPick query)
	{
		do {

			if(!query.isSuccess()) {

				break;
			}

			// ?꾩씠???⑤뒫留?蹂듭궗?섍퀬 ??젣?쒕떎.

			ItemController	item = this.control.cmdItemPick(query, query.target);

			if(item == null) {

				break;
			}

			// ?④낵.
			EffectRoot.get().createItemGetEffect(this.control.getPosition());

			SoundManager.get().playSE(Sound.ID.DDG_SE_SYS02);

			switch(item.behavior.item_favor.category) {

				case Item.CATEGORY.CANDY:
				{
					// ?꾩씠??李쎌뿉 ?꾩씠肄??쒖떆.
					this.item_slot.candy.favor = item.behavior.item_favor.clone();

					ItemWindow.get().setItem(Item.SLOT_TYPE.CANDY, 0, this.item_slot.candy.favor);

					// ?룹쓽 ?쇱젙?쒓컙 ?뚯썙??					this.startShotBoost();
				}
				break;

				case Item.CATEGORY.SODA_ICE:
				case Item.CATEGORY.ETC:
				{
					// 鍮??щ’???꾩씠???ㅼ젙.
					int		slot_index = this.item_slot.getEmptyMiscSlot();

					if(slot_index >= 0) {

						this.item_slot.miscs[slot_index].item_id = query.target;
						this.item_slot.miscs[slot_index].favor   = item.behavior.item_favor.clone();

						// ?꾩씠??李쎌뿉 ?꾩씠肄??쒖떆.
						ItemWindow.get().setItem(Item.SLOT_TYPE.MISC, slot_index, this.item_slot.miscs[slot_index].favor);
					}
				}
				break;

				case Item.CATEGORY.FOOD:
				{
					// 泥대젰 ?뚮났.
					if(GameRoot.get().isNowCakeBiking()) {

						this.control.vital.healFullInternal();

					} else {

						this.control.vital.healFull();

						// ?덉씤蹂댁슦 移쇰윭 ?④낵.
						this.skin_color_control.startHealing();
					}

					// 泥대젰 ?뚮났???뚮┝.
					CharacterRoot.get().NotifyHitPoint(this.getAcountID(), this.control.vital.getHitPoint());

					// ?꾩씠???먭린瑜??뚮┝.
					this.control.cmdItemDrop(query.target);

					// 耳€?댄겕瑜?癒뱀? ??耳€?댄겕 臾댄븳?쒓났??.
					this.cake_count++;
				}
				break;

				// 諛??댁뇿.
				case Item.CATEGORY.KEY:
				{
					PartyControl.get().getLocalPlayer().control.consumeKey(item);

					Item.KEY_COLOR	key_color = Item.Key.getColorFromInstanceName(item.name);

					// ?꾩씠??李쎌뿉 ?꾩씠肄??쒖떆.
					if(key_color != Item.KEY_COLOR.NONE) {

						ItemWindow.get().setItem(Item.SLOT_TYPE.KEY, (int)key_color, item.behavior.item_favor);
					}
				}
				break;

				// ?뚮줈???대룞 臾??댁뇿.
				case Item.CATEGORY.FLOOR_KEY:
				{
					MapCreator.getInstance().UnlockBossDoor();

					// ?꾩씠??李쎌뿉 ?꾩씠肄??쒖떆.
					ItemWindow.get().setItem(Item.SLOT_TYPE.FLOOR_KEY, 0, item.behavior.item_favor);
				}
				break;

				case Item.CATEGORY.WEAPON:
				{
					// ??蹂€寃??€??諛쒖뭏 / ?좎옄 ??깂).
					SHOT_TYPE	shot_type = Item.Weapon.getShotType(item.name);

					if(shot_type != SHOT_TYPE.NONE) {

						this.changeBulletShooter(shot_type);
					}
				}
				break;
			}

			item.vanish();

		} while(false);

		query.set_expired(true);
	}
예제 #7
0
	// 떨어져 있는 아이템을 줍습니다.
	public ItemController	pickItem(QueryItemPick query, string owner_id, string item_id)
	{
		// 프로그램의 버그를 막고자 쿼리가 없으면
		// 주울 수 없게 했습니다.

		ItemController	item = null;
		
		do {
			
			// 일단 쿼리 결과도 체크합니다.
			if(!query.isSuccess()) {

				break;
			}
	
			item = this.find_item(item_id);
			
			if(item == null) {
				
				break;
			}

			item.picker = owner_id;
			item.startPicked();

		} while(false);

		return(item);
	}
예제 #8
0
    private void    resolve_pick_item_query(QueryItemPick query)
    {
        do
        {
            if (!query.isSuccess())
            {
                break;
            }

            // 아이템 효과만 복사하고 삭제한다.

            ItemController item = this.control.cmdItemPick(query, query.target);

            if (item == null)
            {
                break;
            }

            // 이펙트.
            EffectRoot.get().createItemGetEffect(this.control.getPosition());

            SoundManager.get().playSE(Sound.ID.DDG_SE_SYS02);

            Debug.Log("Item favor category:" + item.behavior.item_favor.category);
            switch (item.behavior.item_favor.category)
            {
            case Item.CATEGORY.FOOD:
            {
                this.control.vital.healFull();

                this.skin_color_control.startHealing();

                this.cake_count++;
            }
            break;

            case Item.CATEGORY.KEY:
            {
                PartyControl.get().getLocalPlayer().control.consumeKey(item);
            }
            break;

            case Item.CATEGORY.FLOOR_KEY:
            {
                PartyControl.get().getLocalPlayer().control.consumeKey(item);
            }
            break;

            case Item.CATEGORY.CANDY:
            {
                this.startShotBoost();
            }
            break;

            case Item.CATEGORY.WEAPON:
            {
                SHOT_TYPE shot_type = Item.Weapon.getShotType(item.name);

                if (shot_type != SHOT_TYPE.NONE)
                {
                    this.changeBulletShooter(shot_type);
                }
            }
            break;
            }

            item.vanish();
        } while(false);

        query.set_expired(true);
    }
예제 #9
0
    private void    resolve_pick_item_query(QueryItemPick query)
    {
        do
        {
            if (!query.isSuccess())
            {
                break;
            }

            // ?꾩씠???⑤뒫留?蹂듭궗?섍퀬 ??젣?쒕떎.

            ItemController item = this.control.cmdItemPick(query, query.target);

            if (item == null)
            {
                break;
            }

            // ?④낵.
            EffectRoot.get().createItemGetEffect(this.control.getPosition());

            SoundManager.get().playSE(Sound.ID.DDG_SE_SYS02);

            switch (item.behavior.item_favor.category)
            {
            case Item.CATEGORY.CANDY:
            {
                // ?꾩씠??李쎌뿉 ?꾩씠肄??쒖떆.
                this.item_slot.candy.favor = item.behavior.item_favor.clone();

                ItemWindow.get().setItem(Item.SLOT_TYPE.CANDY, 0, this.item_slot.candy.favor);

                // ?룹쓽 ?쇱젙?쒓컙 ?뚯썙??					this.startShotBoost();
            }
            break;

            case Item.CATEGORY.SODA_ICE:
            case Item.CATEGORY.ETC:
            {
                // 鍮??щ’???꾩씠???ㅼ젙.
                int slot_index = this.item_slot.getEmptyMiscSlot();

                if (slot_index >= 0)
                {
                    this.item_slot.miscs[slot_index].item_id = query.target;
                    this.item_slot.miscs[slot_index].favor   = item.behavior.item_favor.clone();

                    // ?꾩씠??李쎌뿉 ?꾩씠肄??쒖떆.
                    ItemWindow.get().setItem(Item.SLOT_TYPE.MISC, slot_index, this.item_slot.miscs[slot_index].favor);
                }
            }
            break;

            case Item.CATEGORY.FOOD:
            {
                // 泥대젰 ?뚮났.
                if (GameRoot.get().isNowCakeBiking())
                {
                    this.control.vital.healFullInternal();
                }
                else
                {
                    this.control.vital.healFull();

                    // ?덉씤蹂댁슦 移쇰윭 ?④낵.
                    this.skin_color_control.startHealing();
                }

                // 泥대젰 ?뚮났???뚮┝.
                CharacterRoot.get().NotifyHitPoint(this.getAcountID(), this.control.vital.getHitPoint());

                // ?꾩씠???먭린瑜??뚮┝.
                this.control.cmdItemDrop(query.target);

                // 耳€?댄겕瑜?癒뱀? ??耳€?댄겕 臾댄븳?쒓났??.
                this.cake_count++;
            }
            break;

            // 諛??댁뇿.
            case Item.CATEGORY.KEY:
            {
                PartyControl.get().getLocalPlayer().control.consumeKey(item);

                Item.KEY_COLOR key_color = Item.Key.getColorFromInstanceName(item.name);

                // ?꾩씠??李쎌뿉 ?꾩씠肄??쒖떆.
                if (key_color != Item.KEY_COLOR.NONE)
                {
                    ItemWindow.get().setItem(Item.SLOT_TYPE.KEY, (int)key_color, item.behavior.item_favor);
                }
            }
            break;

            // ?뚮줈???대룞 臾??댁뇿.
            case Item.CATEGORY.FLOOR_KEY:
            {
                MapCreator.getInstance().UnlockBossDoor();

                // ?꾩씠??李쎌뿉 ?꾩씠肄??쒖떆.
                ItemWindow.get().setItem(Item.SLOT_TYPE.FLOOR_KEY, 0, item.behavior.item_favor);
            }
            break;

            case Item.CATEGORY.WEAPON:
            {
                // ??蹂€寃??€??諛쒖뭏 / ?좎옄 ??깂).
                SHOT_TYPE shot_type = Item.Weapon.getShotType(item.name);

                if (shot_type != SHOT_TYPE.NONE)
                {
                    this.changeBulletShooter(shot_type);
                }
            }
            break;
            }

            item.vanish();
        } while(false);

        query.set_expired(true);
    }
예제 #10
0
	private void	resolve_pick_item_query(QueryItemPick query)
	{
		do {

			if(!query.isSuccess()) {

				break;
			}

			// 아이템 효능만 복사하고 삭제한다.

			ItemController	item = this.control.cmdItemPick(query, query.target);

			if(item == null) {

				break;
			}

			// 효과.
			EffectRoot.get().createItemGetEffect(this.control.getPosition());

			SoundManager.get().playSE(Sound.ID.DDG_SE_SYS02);

			switch(item.behavior.item_favor.category) {

				case Item.CATEGORY.CANDY:
				{
					// 아이템 창에 아이콘 표시.
					this.item_slot.candy.favor = item.behavior.item_favor.clone();

					ItemWindow.get().setItem(Item.SLOT_TYPE.CANDY, 0, this.item_slot.candy.favor);

					// 샷의 일정시간 파워업
					this.startShotBoost();
				}
				break;

				case Item.CATEGORY.SODA_ICE:
				case Item.CATEGORY.ETC:
				{
					// 빈 슬롯에 아이템 설정.
					int		slot_index = this.item_slot.getEmptyMiscSlot();

					if(slot_index >= 0) {

						this.item_slot.miscs[slot_index].item_id = query.target;
						this.item_slot.miscs[slot_index].favor   = item.behavior.item_favor.clone();

						// 아이템 창에 아이콘 표시.
						ItemWindow.get().setItem(Item.SLOT_TYPE.MISC, slot_index, this.item_slot.miscs[slot_index].favor);
					}
				}
				break;

				case Item.CATEGORY.FOOD:
				{
					// 체력 회복.
					if(GameRoot.get().isNowCakeBiking()) {

						this.control.vital.healFullInternal();

					} else {

						this.control.vital.healFull();

						// 레인보우 칼러 효과.
						this.skin_color_control.startHealing();
					}

					// 체력 회복을 알림.
					CharacterRoot.get().NotifyHitPoint(this.getAcountID(), this.control.vital.getHitPoint());

					// 아이템 폐기를 알림.
					this.control.cmdItemDrop(query.target);

					// 케이크를 먹은 수(케이크 무한제공용).
					this.cake_count++;
				}
				break;

				// 방 열쇠.
				case Item.CATEGORY.KEY:
				{
					PartyControl.get().getLocalPlayer().control.consumeKey(item);

					Item.KEY_COLOR	key_color = Item.Key.getColorFromInstanceName(item.name);

					// 아이템 창에 아이콘 표시.
					if(key_color != Item.KEY_COLOR.NONE) {

						ItemWindow.get().setItem(Item.SLOT_TYPE.KEY, (int)key_color, item.behavior.item_favor);
					}
				}
				break;

				// 플로어 이동 문 열쇠.
				case Item.CATEGORY.FLOOR_KEY:
				{
					MapCreator.getInstance().UnlockBossDoor();

					// 아이템 창에 아이콘 표시.
					ItemWindow.get().setItem(Item.SLOT_TYPE.FLOOR_KEY, 0, item.behavior.item_favor);
				}
				break;

				case Item.CATEGORY.WEAPON:
				{
					// 샷 변경(대파 발칸 / 유자 폭탄).
					SHOT_TYPE	shot_type = Item.Weapon.getShotType(item.name);

					if(shot_type != SHOT_TYPE.NONE) {

						this.changeBulletShooter(shot_type);
					}
				}
				break;
			}

			item.vanish();

		} while(false);

		query.set_expired(true);
	}
예제 #11
0
	private void	resolve_pick_item_query(QueryItemPick query)
	{
		do {

			if(!query.isSuccess()) {

				break;
			}

			// ?꾩씠???④낵留?蹂듭궗?섍퀬 ??젣?쒕떎.

			ItemController	item = this.control.cmdItemPick(query, query.target);

			if(item == null) {

				break;
			}

			// ?댄럺??
			EffectRoot.get().createItemGetEffect(this.control.getPosition());

			SoundManager.get().playSE(Sound.ID.DDG_SE_SYS02);

			Debug.Log("Item favor category:" + item.behavior.item_favor.category);
			switch(item.behavior.item_favor.category) {

				case Item.CATEGORY.FOOD:
				{
					this.control.vital.healFull();
					
					this.skin_color_control.startHealing();

					this.cake_count++;
				}
				break;

				case Item.CATEGORY.KEY:
				{
					PartyControl.get().getLocalPlayer().control.consumeKey(item);
				}
				break;	
				
				case Item.CATEGORY.FLOOR_KEY:
				{
					PartyControl.get().getLocalPlayer().control.consumeKey(item);
				}
				break;	

				case Item.CATEGORY.CANDY:
				{
					this.startShotBoost();
				}
				break;

				case Item.CATEGORY.WEAPON:
				{
					SHOT_TYPE	shot_type = Item.Weapon.getShotType(item.name);
					
					if(shot_type != SHOT_TYPE.NONE) {
						
						this.changeBulletShooter(shot_type);
					}
				}
				break;
			}
			
			item.vanish();

		} while(false);

		query.set_expired(true);
	}
예제 #12
0
    private void    resolve_pick_item_query(QueryItemPick query)
    {
        do
        {
            if (!query.isSuccess())
            {
                break;
            }

            // 아이템 효능만 복사하고 삭제한다.

            ItemController item = this.control.cmdItemPick(query, query.target);

            if (item == null)
            {
                break;
            }

            // 효과.
            EffectRoot.get().createItemGetEffect(this.control.getPosition());

            SoundManager.get().playSE(Sound.ID.DDG_SE_SYS02);

            switch (item.behavior.item_favor.category)
            {
            case Item.CATEGORY.CANDY:
            {
                // 아이템 창에 아이콘 표시.
                this.item_slot.candy.favor = item.behavior.item_favor.clone();

                ItemWindow.get().setItem(Item.SLOT_TYPE.CANDY, 0, this.item_slot.candy.favor);

                // 샷의 일정시간 파워업
                this.startShotBoost();
            }
            break;

            case Item.CATEGORY.SODA_ICE:
            case Item.CATEGORY.ETC:
            {
                // 빈 슬롯에 아이템 설정.
                int slot_index = this.item_slot.getEmptyMiscSlot();

                if (slot_index >= 0)
                {
                    this.item_slot.miscs[slot_index].item_id = query.target;
                    this.item_slot.miscs[slot_index].favor   = item.behavior.item_favor.clone();

                    // 아이템 창에 아이콘 표시.
                    ItemWindow.get().setItem(Item.SLOT_TYPE.MISC, slot_index, this.item_slot.miscs[slot_index].favor);
                }
            }
            break;

            case Item.CATEGORY.FOOD:
            {
                // 체력 회복.
                if (GameRoot.get().isNowCakeBiking())
                {
                    this.control.vital.healFullInternal();
                }
                else
                {
                    this.control.vital.healFull();

                    // 레인보우 칼러 효과.
                    this.skin_color_control.startHealing();
                }

                // 체력 회복을 알림.
                CharacterRoot.get().NotifyHitPoint(this.getAcountID(), this.control.vital.getHitPoint());

                // 아이템 폐기를 알림.
                this.control.cmdItemDrop(query.target);

                // 케이크를 먹은 수(케이크 무한제공용).
                this.cake_count++;
            }
            break;

            // 방 열쇠.
            case Item.CATEGORY.KEY:
            {
                PartyControl.get().getLocalPlayer().control.consumeKey(item);

                Item.KEY_COLOR key_color = Item.Key.getColorFromInstanceName(item.name);

                // 아이템 창에 아이콘 표시.
                if (key_color != Item.KEY_COLOR.NONE)
                {
                    ItemWindow.get().setItem(Item.SLOT_TYPE.KEY, (int)key_color, item.behavior.item_favor);
                }
            }
            break;

            // 플로어 이동 문 열쇠.
            case Item.CATEGORY.FLOOR_KEY:
            {
                MapCreator.getInstance().UnlockBossDoor();

                // 아이템 창에 아이콘 표시.
                ItemWindow.get().setItem(Item.SLOT_TYPE.FLOOR_KEY, 0, item.behavior.item_favor);
            }
            break;

            case Item.CATEGORY.WEAPON:
            {
                // 샷 변경(대파 발칸 / 유자 폭탄).
                SHOT_TYPE shot_type = Item.Weapon.getShotType(item.name);

                if (shot_type != SHOT_TYPE.NONE)
                {
                    this.changeBulletShooter(shot_type);
                }
            }
            break;
            }

            item.vanish();
        } while(false);

        query.set_expired(true);
    }