Example #1
0
void ObjectController::_handleTendWound(uint64 targetId,Message* message,ObjectControllerCmdProperties* cmdProperties)
{
    PlayerObject* Medic = dynamic_cast<PlayerObject*>(mObject);
    PlayerObject* Target = dynamic_cast<PlayerObject*>(Medic->getHealingTarget(Medic));
    //TODO:: add medic droid
    /*EMLocationType loc = Medic->getPlayerLocation();
    if(loc != EMLocation_Cantina || loc != EMLocation_Camp || loc != EMLocation_PlayerStructure)
    {
        return;
    }*/
    std::string messageResponse = gMedicManager->handleMessage(message,"(action|constitution|health|quickness|stamina|strength)");
    if (messageResponse.length() == 0)    {
        //you must specify a valid wound type
        gMessageLib->SendSystemMessage(::common::OutOfBand("healing_response", "healing_response_65"), Medic);
		return;
    }
    
    //check Medic has enough Mind
    auto ham = gWorldManager->getKernel()->GetServiceManager()->GetService<swganh::ham::HamService>("HamService");
    if(!ham->checkMainPools(Medic, 0, 0, 500))    {
		gMessageLib->SendSystemMessage(::common::OutOfBand("healing_response", "not_enough_mind"), Medic);
		return;
	}
        
	if (gMedicManager->HealWound(Medic, Target, 0, cmdProperties, messageResponse + "tendwound"))
    {
        ham->ApplyWound(Medic, HamBar_Focus, 5);
        ham->ApplyWound(Medic, HamBar_Willpower, 5);
		Medic->AddBattleFatigue(2);
        //call the event
        gMedicManager->startWoundTreatmentEvent(Medic);
        return;
	}

}
Example #2
0
void ObjectController::_handleTendDamage(uint64 targetId,Message* message,ObjectControllerCmdProperties* cmdProperties)
{
    PlayerObject* Medic = dynamic_cast<PlayerObject*>(mObject);
    PlayerObject* Target = dynamic_cast<PlayerObject*>(Medic->getHealingTarget(Medic));

    //check Medic has enough Mind
    auto ham = gWorldManager->getKernel()->GetServiceManager()->GetService<swganh::ham::HamService>("HamService");

    if(!ham->checkMainPools(Medic, cmdProperties->mHealthCost, cmdProperties->mActionCost, cmdProperties->mMindCost)){
		gMessageLib->SendSystemMessage(::common::OutOfBand("healing_response", "not_enough_mind"), Medic);
		return;
	}

    if (gMedicManager->HealDamage(Medic, Target, 0, cmdProperties, "tendDamage"))
    {
		ham->ApplyWound(Medic, HamBar_Focus, 5);
        ham->ApplyWound(Medic, HamBar_Willpower, 5);
		Medic->AddBattleFatigue(2);
        
		//call the event
        gMedicManager->startInjuryTreatmentEvent(Medic);
        return;
    }

}
Example #3
0
File: Med.cpp Project: Kreyl/nute
char* _medNewWound(ubyte_t place)
{
	int DamageSeverity = IncreaseCategory(&Body.parts[place].CurrSeverity);
	ApplyWound(place,DamageSeverity,&Body.parts[place]);
	const char* msg =  WoundDescs[place][DamageSeverity].message;
//temp
//	ArmletApi::snprintf(_buf,200,"%s-%d\n%s",
//		TargetNames[place],
//		DamageSeverity,
//		msg);
//	return _buf;
	return (char*)msg;
}
Example #4
0
File: Med.cpp Project: Kreyl/nute
char* _medOnKnockout ()
{
	int Target = ArmletApi::GetRandom(MaxTarget);
	int DamageSeverity = IncreaseCategory(&Body.parts[Target].CurrSeverity);
	ApplyWound(MaxTarget,DamageSeverity,&Body.parts[Target]);
	const char* msg =  WoundDescs[MaxTarget][DamageSeverity].message;
//temp
//	ArmletApi::snprintf(_buf,200,"%s-%d\n%s",
//		TargetNames[MaxTarget],
//		DamageSeverity,
//		msg);
//	return _buf;
	return (char*)msg;
}
Example #5
0
File: Med.cpp Project: Kreyl/nute
char* _medOnExplosion()
{
	int Target = ArmletApi::GetRandom(MaxTarget);
	int DamageSeverity = IncreaseCategory(&Body.parts[Target].CurrSeverity);
	int ExplosionType = ArmletApi::GetRandom(2);
	if (ExplosionType == 1)
		ExplosionType = 2; //skip scorch
	ApplyWound(MaxTarget+1+ExplosionType,DamageSeverity,&Body.parts[Target]);
	const char* msg =  WoundDescs[MaxTarget+1+ExplosionType][DamageSeverity].message;
//temp
//	ArmletApi::snprintf(_buf,200,"%s-%d\n%s",
//		TargetNames[MaxTarget+1+ExplosionType],
//		DamageSeverity,
//		msg);
//	return _buf;
	return (char*)msg;
}