Ejemplo n.º 1
0
int LuaEngine::handleEvenCustom(void* data)
{
    if (nullptr == data)
        return 0;
    
    BasicScriptData * basicData = static_cast<BasicScriptData*>(data);
    if (NULL == basicData->nativeObject || nullptr == basicData->value )
        return 0;
    
    EventCustom* eventCustom = static_cast<EventCustom*>(basicData->value);
    int handler = ScriptHandlerMgr::getInstance()->getObjectHandler((void*)basicData->nativeObject, ScriptHandlerMgr::HandlerType::EVENT_CUSTIOM);
    
    if (0 == handler)
        return 0;
    
    lua_State* L = _stack->getLuaState();
    toluafix_pushusertype_ccobject(L, eventCustom->_ID, &(eventCustom->_luaID), (void*)(eventCustom),"cc.EventCustom");
    
    const std::string &eventName = eventCustom->getEventName();
    const void *userData = eventCustom->getUserData();
    int ret = 0;
    if (eventName.compare(AnimationFrameDisplayedNotification) == 0) {
        AnimationFrame::DisplayedEventInfo *eventInfo = (AnimationFrame::DisplayedEventInfo *)userData;
        _stack->pushObject(eventInfo->target, "cc.Node");
        ccvaluemap_to_luaval(_stack->getLuaState(), *(eventInfo->userInfo));
        
        ret = _stack->executeFunctionByHandler(handler, 3);
    } else {
        ret = _stack->executeFunctionByHandler(handler, 1);
    }
    _stack->clean();
    
    return ret;
}
Ejemplo n.º 2
0
void HeroEnety::attainBase(RaceEunm race)
{
    ValueMap data;
    float fractionOffset, humanResOffset, HPOffset;
    switch (mMentalEnum) {
        case MentalEnum::Normal:
            fractionOffset = SacrificeValueWhenNormal;
            humanResOffset = HumanPowerWhenNormal;
            HPOffset = HitPointWhenNormal;
            break;
        case MentalEnum::Captured:
            fractionOffset = SacrificeValueWhenCaptured;
            humanResOffset = HumanPowerWhenCaptured;
            HPOffset = HitPointWhenCaptured;
            break;
        default:
            break;
    }
    data.insert(std::make_pair("fractionOffset", Value(fractionOffset)));
    data.insert(std::make_pair("humanResOffset", Value(humanResOffset)));
    data.insert(std::make_pair("HPOffset", Value(HPOffset)));
    data.insert(std::make_pair("RaceEunm", Value(race)));
    
    std::string eventName = "event_arrive_base";
    EventCustom event = EventCustom(eventName);
    event.setUserData((void *)(&data));
    Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
}
Ejemplo n.º 3
0
void HeroEnety::GoDead(){
	if(mStateEunm == StateEunm::Dead) { return; }
	mStateEunm = StateEunm::Dead;
	HeroManager::getInstance()->del(this);
    
    if (SoldierTypeID == 3)
    {
        ValueMap data;
        data.insert(std::make_pair("raid", Value(roadID)));
        bool isLeft = false;
        if (mRaceEunm == RaceEunm::Red)
        {
            isLeft = true;
        }
        data.insert(std::make_pair("isLeft", Value(isLeft)));
        
        std::string eventName = "missionary_dead";
        EventCustom event = EventCustom(eventName);
        event.setUserData((void *)(&data));
        Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
    }
    
	return;
	auto callback = CallFuncN::create( CC_CALLBACK_0(HeroEnety::deadcallback,this));
	auto dt = DelayTime::create(1);
	auto fo = FadeOut::create(1);
	//auto d = Sequence::create((Animate*)Action_Dead, dt, callback, nullptr);
	auto d = Sequence::create(fo, dt, callback,nullptr);
	this->runAction(d);
}
Ejemplo n.º 4
0
EventCustom* EventCustom::create(const std::string& eventName, void* data)
{
    EventCustom* event = new EventCustom(eventName);
    event->setUserData(data);
    event->autorelease();
    return event;
}