void GongJiang_EquipSelect::select()
{
	CCTableViewCell* lastCell = mTableView->cellAtIndex(0);
	if (lastCell)
	{
		BaseSprite* bg = (BaseSprite*)lastCell->getChildByTag(TAG_EquipBaseBody_TABLE_ITEM);

		bool isFirstIn = false;
		// 先不管是否点击了图片
		if(GameGuideManager::getManager()->isGuideNow(GameGuideManager::GID_GongJiang_QiangHua))
		{
			//GameGuideManager::getManager()->setOneGuideStart(GameGuideManager::GID_GongJiang_SelectZhuangBei);
			//GameGuideManager::getManager()->setOneGuideEnd(GameGuideManager::GID_GongJiang_SelectZhuangBei);
			if (bg)
			{
				CCPoint pos = bg->getParent()->convertToWorldSpace(bg->getPosition());
				GuideLayerBase *guideLayer1 = new GuideLayer_SimpleLayer;
				guideLayer1->init(bg->getContentSize(), ccp(pos.x,pos.y + bg->getContentSize().height / 2)
					, LFStrings::getValue("qiangxuanzezhuangbei"), NULL, false);
				//((GuideLayer_SimpleLayer*)guideLayer1)->setCallBack(this,SEL_CallFunc(&JiuGongGeLayer::GuiDeLayerCallBack));
				CCDirector::sharedDirector()->getRunningScene()->addChild(guideLayer1, 128);
			}
		}
	}

}
예제 #2
0
CCTableViewCell* TanSuoLayer::tableCellAtIndex(CCTableView *table, unsigned int idx)
{
	CCTableViewCell *cell = table->dequeueCell();
	if (cell != NULL)
	{
		cell->removeAllChildren();
	}
	else 
	{
		cell = new CCTableViewCell();
		cell->autorelease();
	}

	if (table->getParent() != NULL)
	{
		CCSize cellSize = tableCellSizeForIndex(table, idx);
		Profession profId = mHeros.at(idx)->getCurrentProperty().profession;

		//head  Profession 1-10
		BaseSprite *headImg = BaseSprite::create(ImageManager::getManager()->getImageData_ProfessionHead(profId).getCurrentImageFile());
		cell->addChild(headImg);
		headImg->setPosition(ccp(cellSize.width/2, 92));

		//menu
		FXScrollMenu *menu = FXScrollMenu::create(
			table->getParent()->convertToWorldSpace(table->getPosition()), table->getViewSize());
		cell->addChild(menu, 1);
		menu->setPosition(ccp(0,0));
		CCMenuItemImage *item = CCMenuItemImage::create(
			"renxing_renwu_touxiang.png",
			"renxing_renwu_touxiang_select.png", 
			"renxing_renwu_touxiang_select.png", 
			this, menu_selector(TanSuoLayer::menuItemClicked_JieFenHeroSelect));
		menu->addChild(item, 0, profId);

		m_lMenuItemList.push_back(item);

		item->setPosition(headImg->getPosition());
		//name
		CCLabelTTF *nameLabel = CCLabelTTF::create(BaseActorPropertyParser::getParser()->getExtraProerty(profId).nameInChinese.c_str()
			, fontStr_kaiti, m_nFontSize);
		cell->addChild(nameLabel);
		nameLabel->setPosition(ccp(headImg->getPositionX()
			, headImg->getPositionY()-headImg->getContentSize().height/2-nameLabel->getContentSize().height/2));
		nameLabel->setColor(ccc3(195, 145, 96));
	}

	return cell;
}
BaseSprite* MainLayerHerosBaseBody::getItemContentByIndex(unsigned int index)
{

	BaseSprite* bg = BaseSprite::create("duiwu_yingxiong_bg.png");
	bg->setPosition(ccp(bg->getContentSize().width/2,bg->getContentSize().height/2));

	//图片
	{
		ImageData data = ImageManager::getManager()->getImageData_ProfessionHead((Profession)mHerosVec[index]->getActorType());

		CCLOG("----------------->%s",data.getCurrentImageFile().c_str());
		BaseSprite *sprite = BaseSprite::create( data.getCurrentImageFile());
		BaseSprite *sprite2 = BaseSprite::create( data.getCurrentImageFile());
		BaseSprite *sprite3 = BaseSprite::create( data.getCurrentImageFile());
		CCMenuItemSprite* heroItem = CCMenuItemSprite::create(sprite, sprite2, sprite3, this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_heroImg));
		CCMenu* menu = CCMenu::create(heroItem, NULL);
		bg->addChild(menu, 0, TAG_BaseBody_TABLE_HERO_IMG);
		heroItem->setPosition(ccp(74, bg->getContentSize().height/2));
		menu->setPosition(CCPointZero);

		BaseSprite *biankuang = BaseSprite::create("renxing_renwu_touxiang_select.png");
		bg->addChild(biankuang, 1);
		biankuang->setPosition(heroItem->getPosition());
		BaseSprite *item = NULL;
		Profession iType = (Profession)mHerosVec[index]->getActorType();
		if (iType == Profession_Yemanren)
		{
			item = BaseSprite::create("touxiang_jiaobiao_3.png");
		}
		else if (iType == Profession_Chike)
		{
			item = BaseSprite::create("touxiang_jiaobiao_2.png");
		}
		else if (iType == Profession_Fashi)
		{
			item = BaseSprite::create("touxiang_jiaobiao_1.png");
		}
		else if (iType == Profession_Qishi)
		{
			item = BaseSprite::create("touxiang_jiaobiao_3.png");
		}
		else if (iType == Profession_ShenJianShou)
		{
			item = BaseSprite::create("touxiang_jiaobiao_4.png");
		}
		else if (iType == Profession_MiShu)
		{
			item = BaseSprite::create("touxiang_jiaobiao_1.png");
		}
		else if (iType == Profession_WuSeng)
		{
			item = BaseSprite::create("touxiang_jiaobiao_5.png");
		}
		else if (iType == Profession_YouXia)
		{
			item = BaseSprite::create("touxiang_jiaobiao_2.png");
		}
		else if (iType == Profession_LieShou)
		{
			item = BaseSprite::create("touxiang_jiaobiao_4.png");
		}
		else if (iType == Profession_WuShi)
		{
			item = BaseSprite::create("touxiang_jiaobiao_6.png");
		}

		if (item)
		{
			item->setAnchorPoint(ccp(1, 0));
			biankuang->addChild(item);
			item->setPosition(ccp(biankuang->getContentSize().width, 0));
		}		
	}

	//name
	HeroFixedPro info = BaseActorPropertyParser::getParser()->getExtraProerty((Profession)mHerosVec[index]->getActorType());
	LF::lable(bg, info.nameInChinese,ccp(140, 106),22,fontStr_kaiti)->setTag(TAG_BaseBody_LABLE_NAME);

	// 英雄介绍
	{
		Profession profId = mHerosVec[index]->getActorType();
		CCLabelTTF *directionLabel = CCLabelTTF::create(getHeroDirectionByProfessionId(profId).c_str(), fontStr_kaiti, 20, CCSize(380, 0), kCCTextAlignmentLeft);
		bg->addChild(directionLabel, 1, Tag_Label_HeroDirection);
		directionLabel->setColor(ccc3(165, 125, 76));
		directionLabel->setAnchorPoint(ccp(0, 1));
		directionLabel->setPosition(ccp(140, 94));
	}

	if (mFlag == 1)
	{
		CCMenuItemImage* chose = CCMenuItemImage::create(
			"duiwu_yingxiong_weixuanzhong.png"
			, "duiwu_yingxiong_weixuanzhong.png"
			, this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_choseHero));
		chose->setPosition(558, 83);
		CCMenu* menu = CCMenu::create(chose, NULL);
		menu->setPosition(CCPointZero);
		bg->addChild(menu, 0, TAG_Menu);

		CCSprite* unlock = CCSprite::create("duiwu_yingxiong_unlock.png", CCRect(0, 0, 610, 129));
		bg->addChild(unlock, 0, TAG_Unlock);
		unlock->setOpacity(200);
		unlock->setPosition(bg->getPosition());

		int state = mChoseHeroState.at(index);
		if(state>=1 && state<=4) //已选中的
		{
			chose->initWithNormalImage(
				"duiwu_yingxiong_xuanzhong.png"
				, "duiwu_yingxiong_xuanzhong.png"
				, "duiwu_yingxiong_xuanzhong.png"
				, this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_choseHero));
			unlock->setVisible(false);
		}
		else if(state == 0 && mChoseNum<3) //未选中 可选的
		{
			chose->initWithNormalImage(
				"duiwu_yingxiong_daixuan.png"
				, "duiwu_yingxiong_daixuan.png"
				, "duiwu_yingxiong_daixuan.png"
				, this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_choseHero));
			unlock->setVisible(false);
		}

		else						//选满了、不能选的
		{
			bg->initWithFile("duiwu_yingxiong_bg_suoding.png");
		}

	}
	else if (mFlag == 2)
	{
		if (mHerosVec.at(index)->canUnlock())
		{
			//可解锁
			CCMenuItemImage* kjsItem = CCMenuItemImage::create(
				"duiwu_yingxiong_jiesuo.png"
				, "duiwu_yingxiong_jiesuo.png"
				, this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_jiesuoHero));
			kjsItem->setPosition(558, 83);
			kjsItem->setTag(index);
			CCMenu* menu = CCMenu::create(kjsItem, NULL);
			menu->setPosition(CCPointZero);
			bg->addChild(menu, 0, TAG_Menu);
		}
		else //还不能解锁
		{
			//不能解锁
			CCMenuItemImage* kjsItem = CCMenuItemImage::create(
				"duiwu_yingxiong_suoding.png"
				, "duiwu_yingxiong_suoding.png"
				, this, menu_selector(MainLayerHerosBaseBody::menuItemClicked_jiesuoHero));
			kjsItem->setPosition(558, 83);
			kjsItem->setTag(index);
			CCMenu* menu = CCMenu::create(kjsItem, NULL);
			menu->setPosition(CCPointZero);
			bg->addChild(menu, 0, TAG_Menu);

			CCSprite* unlock = CCSprite::create("duiwu_yingxiong_unlock.png", CCRect(0, 0, 610, 129));
			bg->addChild(unlock, 0, TAG_Unlock);
			unlock->setOpacity(200);
			unlock->setPosition(bg->getPosition());
		}

	}
	

	return bg;
}
BaseSprite* MainLayerZhuangBeiBaseBody::getItemContentByIndex(unsigned int index)
{
    BaseSprite* bg = BaseSprite::create("mianban_zhuangbei_xiangxi.png");

    CCString tempStr;

    CCPoint picPos = ccp(75.0f, bg->getContentSize().height/2);

    {
        ImageData diWenData = ImageManager::getManager()->getImageData_DiWen_List(
                                  mEquipmentVec[index]->getEquipColor(),
                                  false,
                                  mEquipmentVec[index]->isPartOfSuit(),
                                  mEquipmentVec[index]->haveZhuanke());
        BaseSprite* diWen = BaseSprite::create(diWenData.getCurrentImageFile());
        diWen->setScale(diWenData.scale);
        diWen->setPosition(picPos);
        bg->addChild(diWen,0,TAG_BaseBody_TABLE_ITEM_DiWen);

        {
            BaseSprite *sprite = ImageManager::getManager()->getSpriteOfZhuangbei(mEquipmentVec[index],true,true);
            //sprite->setScale(data.scale);
            sprite->setScale(0.43f);
            sprite->setPosition(picPos);
            bg->addChild(sprite,0,TAG_BaseBody_TABLE_ITEM_Image);
        }

        //封印
        if (mEquipmentVec[index]->isInFengYin())
        {
            BaseSprite *fyImg = BaseSprite::create("shenbing_fengyin_suo.png");
            bg->addChild(fyImg, 0, TAG_BaseBody_TABLE_FengYin_Img);
            fyImg->setPosition(diWen->getPosition());
            fyImg->setScale(diWen->getContentSize().width*diWen->getScale() / fyImg->getContentSize().width);
        }

    }

    // 添加图片识别区
    {
        ImageData selecedData = ImageManager::getManager()->getImageData_DiWen_Selected(
                                    mEquipmentVec[index]->getEquipColor(),
                                    false,//mEquipmentVec[index]->isShenBing(),
                                    mEquipmentVec[index]->isPartOfSuit());
        BaseSprite* menuItemSel = BaseSprite::create(selecedData.getCurrentImageFile());
        menuItemSel->setScale(selecedData.scale);
        CCSprite* menuRect = CCSprite::createWithTexture(menuItemSel->getTexture());
        menuRect->setScale(0.0f);

        FXScrollMenu *menu = FXScrollMenu::create(
                                 mTableView->getParent()->convertToWorldSpace(mTableView->getPosition()), mTableView->getViewSize());
        bg->addChild(menu, 0, TAG_BaseBody_MENU);
        menu->setPosition(ccp(0,0));
        CCMenuItemSprite* t = CCMenuItemSprite::create(menuRect,menuItemSel,this,SEL_MenuHandler(&MainLayerZhuangBeiBaseBody::itemImageClicked));
        menu->addChild(t, 0, index);
        t->setPosition(picPos);
    }

    float left_x_start = 160 - 4;
    //名称
    {
        CCLabelTTF* label;
        char str[64];
        if (mEquipmentVec[index]->getEquipData().qianghua_data.qianghua_count != 0)
        {
            sprintf(str, "%s", mEquipmentVec[index]->getName().c_str());
        }
        else
        {
            sprintf(str, "%s", mEquipmentVec[index]->getName().c_str());
        }

        label = LF::lable(bg,str,ccp(left_x_start,190),24,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_NAME);
        ccColor3B color = ImageManager::getManager()->getShowColor(mEquipmentVec[index]->getEquipColor(),false,mEquipmentVec[index]->isPartOfSuit());
        label->setColor(color);
    }

    //类型
    {
        std::string typeStr =
            CS::getZhuangbeiTypeName(mEquipmentVec[index]->getType(), mEquipmentVec[index]->getEquipColor());

        CCLabelTTF* label;
        label = LF::lable(bg,typeStr,ccp(left_x_start,165),18,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_TYPE);
        label->setColor(fonColor_CiYao);
    }

    //白字
    {
        CCLabelTTF* label_baizhi = NULL;
        bool hasBaiZhi = false;
        {
            float baizi = 0;
            switch(mEquipmentVec[index]->getType())
            {
            case ZhuangbeiType_DanshouJian:
            case ZhuangbeiType_ShuangshouBishou:
            case ZhuangbeiType_ShuangshouFu:
            case ZhuangbeiType_DanshouFazhang:
            case ZhuangbeiType_ShuangshouFazhang:
            case ZhuangbeiType_Gong:
                hasBaiZhi = true;
                baizi = mEquipmentVec[index]->getGongjiLiAfterQianghua(false);
                break;
            case ZhuangbeiType_Dunpai:
            case ZhuangbeiType_KuijiaZhong:
            case ZhuangbeiType_KuijiaQin:
                hasBaiZhi = true;
                baizi = mEquipmentVec[index]->getHuJiaZhiAfterQianghua();
                break;
            default:
                break;
            }
            if (hasBaiZhi)
            {
                char str[64];
                sprintf(str, "%.1f", baizi);

                label_baizhi = LF::lable(bg,str,ccp(left_x_start,126),60,fontStr_BookAntiqua);
                label_baizhi->setTag(TAG_BaseBody_LABLE_BAIZI);
            }
            else
            {
                label_baizhi = LF::lable(bg,"",ccp(left_x_start,126),60,fontStr_BookAntiqua);
                label_baizhi->setTag(TAG_BaseBody_LABLE_BAIZI);
            }
        }
        //junshang
        CCLabelTTF* label_junshang = LF::lable(bg,LFStrings::getValue("junshang"),ccp(0,0),20,fontStr_kaiti);
        label_junshang->setAnchorPoint(ccp(0, 0.5));
        label_junshang->setPosition(
            ccp(label_baizhi->getPositionX()+label_baizhi->getContentSize().width+10, 116));
        label_junshang->setTag(TAG_BaseBody_LABLE_JUNSHANG_TXT);
        if(hasBaiZhi)
        {
            label_junshang->setVisible(true);
            if(mEquipmentVec[index]->getEquipType() == EquipType_FangJu)
                label_junshang->setString(LFStrings::getValue("huJia").c_str());
        }
        else
        {
            label_junshang->setVisible(false);
        }
    }

    //伤害详细
    if (mEquipmentVec[index]->getEquipType() == EquipType_WuQi)
    {
        CCLabelTTF* label;
        char str[64];
        sprintf(str, "%u-%u ", mEquipmentVec[index]->getEquipData().gongji_min
                , mEquipmentVec[index]->getEquipData().gongji_max);

        label = LF::lable(bg,str,ccp(left_x_start,87),20,fontStr_BookAntiqua);
        label->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_NUM);
        label->setColor(fonColor_CiYao);
        CCLabelTTF* label2;
        label2 = LF::lable(bg,LFStrings::getValue("dianShangHai")
                           ,ccp(label->getPosition().x + label->getContentSize().width, label->getPositionY()),20,fontStr_kaiti);
        label2->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_TXT);
        label2->setColor(fonColor_CiYao);
    }
    else
    {
        CCLabelTTF* label;
        label = LF::lable(bg,"",ccp(left_x_start,87),20,fontStr_kaiti);
        label->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_NUM);
        CCLabelTTF* label2;
        label2 = LF::lable(bg,""
                           ,ccp(label->getPosition().x + label->getContentSize().width, label->getPositionY()),20,fontStr_kaiti);
        label2->setTag(TAG_BaseBody_LABLE_SHANGHAIXIANGXI_TXT);
    }

    //等级
    {
        CCLabelTTF* label;
        char str[64];
        sprintf(str, "%s %u ", LFStrings::getValue("dengji").c_str(), mEquipmentVec[index]->getEquipData().zhuangbei_level);
        label = LF::lable(bg,str,ccp(left_x_start,28),20,fontStr_kaiti);
        label->setColor(fonColor_FaGuang);
        label->setTag(TAG_BaseBody_LABLE_Level);
    }

    //人物
    {
        CCLabelTTF* label;
        int actorId = mEquipmentVec[index]->getActorId();
        if (actorId != INVALID_ID)
        {
            BaseActor* actor = MyselfManager::getManager()->getMyTeamActor(actorId);
            CCAssert(actor!=NULL,"");
            BaseActorProperty prop = actor->getCurrentProperty();
            label = LF::lable(bg,LF::getString("zhuangBeiYu")+prop.nameInChinese,ccp(0, 0),20,fontStr_kaiti);
        }
        else
        {
            label = LF::lable(bg,LF::getString("meiYouZhuangBei"),ccp(0, 0),20,fontStr_kaiti);
        }
        label->setColor(fonColor_FaGuang);
        label->setAnchorPoint(ccp(1, 0.5));
        label->setPosition(ccp( 590, 200));
        label->setTag(TAG_BaseBody_LABLE_OWNTO);
        if (actorId == INVALID_ID && mEquipmentVec[index]->getEquipData().profession_id != 0)
        {
            CCString temp;
            temp.initWithFormat("%s(%s)", LFStrings::getValue("ZhiYeXianZhi").c_str(),
                                BaseActorPropertyParser::getParser()->getExtraProerty((Profession)mEquipmentVec[index]->getEquipData().profession_id).nameInChinese.c_str());
            label->setString(temp.getCString());
            label->setColor(fonColor_JingGao);
        }
    }

    //魔法属性
    {
        int start_x = 400 + 38;
        Equipment* equip = mEquipmentVec[index];
        std::vector<std::string> vec = equip->getAllMofaShuxing(false);

        //大于5个  第五个就是 ......
        for(int i=0; i<vec.size(); ++i)
        {
            std::string txt = vec[i];

            BaseSprite* biaoji = BaseSprite::create("zhuangbei_xiangxi_biaoji.png");
            bg->addChild(biaoji, 0, TAG_BIAOJI+i);
            biaoji->setPosition(ccp(start_x, 170-i*28));
            //biaoji->setOpacity(80);

            CCLabelTTF* label;
            label = LF::lable(bg,txt,ccp(0,0),20,fontStr_kaiti);
            label->setColor(ImageManager::getManager()->getShowColor(ZhuangbeiColour_Fumo, false, false));
            label->setAnchorPoint(ccp(0, 0.5));
            label->setPosition(ccp(start_x+15, 170-i*28));
            label->setTag(i);

            if(vec.size()>6)
            {
                CCLog("Warrior:%s ---> equipment property > 6, current is [%d]", __FUNCTION__, vec.size());
                //	break;
            }
        }
        //洗练
        string xxx;
        CCSprite *diwen = (CCSprite*)bg->getChildByTag(TAG_BaseBody_TABLE_ITEM_DiWen);
        if (equip->canPurify(xxx,1) && diwen)
        {
            ZhuangbeiOptionLevel *layer = ZhuangbeiOptionLevel::createWithEquipment(equip);
            bg->addChild(layer,20);
            //layer->setScale(1/diwen->getScale());
            CCPoint pos = diwen->getPosition();
            pos.x -= diwen->getContentSize().width * diwen->getScaleX() / 2;
            pos.y -= diwen->getContentSize().height * diwen->getScaleY() / 2;

            int width = pos.x + layer->getContentSize().width / 2 + 12;
            int height = pos.y + layer->getContentSize().height / 2 + 4;
            layer->setPosition(ccp(width,height));
        }
    }

    bg->setPosition(ccp(bg->getContentSize().width/2,bg->getContentSize().height/2));
    return bg;
}