Пример #1
0
void SWTypeExt::ExtData::InitializeConstants(SuperWeaponTypeClass *pThis)
{
	NewSWType::Init();

	MouseCursor *Cursor = &this->SW_Cursor;
	Cursor->Frame = 53; // Attack
	Cursor->Count = 5;
	Cursor->Interval = 5; // test?
	Cursor->MiniFrame = 52;
	Cursor->MiniCount = 1;
	Cursor->HotX = hotspx_center;
	Cursor->HotY = hotspy_middle;

	Cursor = &this->SW_NoCursor;
	Cursor->Frame = 0;
	Cursor->Count = 1;
	Cursor->Interval = 5;
	Cursor->MiniFrame = 1;
	Cursor->MiniCount = 1;
	Cursor->HotX = hotspx_center;
	Cursor->HotY = hotspy_middle;

	this->Text_Ready = CSFText("TXT_READY");
	this->Text_Hold = CSFText("TXT_HOLD");
	this->Text_Charging = CSFText("TXT_CHARGING");
	this->Text_Active = CSFText("TXT_FIRESTORM_ON");

	EVA_InsufficientFunds = VoxClass::FindIndex("EVA_InsufficientFunds");
	EVA_SelectTarget = VoxClass::FindIndex("EVA_SelectTarget");
}
Пример #2
0
void SW_LightningStorm::Initialize(SWTypeExt::ExtData *pData, SuperWeaponTypeClass *pSW)
{
	// Defaults to Lightning Storm values
	pData->Weather_DebrisMin = 2;
	pData->Weather_DebrisMax = 4;
	pData->Weather_IgnoreLightningRod = false;
	pData->Weather_ScatterCount = 1;

	pData->Weather_RadarOutageAffects = SuperWeaponAffectedHouse::Enemies;

	pData->EVA_Detected = VoxClass::FindIndex("EVA_WeatherDeviceReady");
	pData->EVA_Ready = VoxClass::FindIndex("EVA_LightningStormReady");
	pData->EVA_Activated = VoxClass::FindIndex("EVA_LightningStormCreated");

	pData->Message_Launch = CSFText("TXT_LIGHTNING_STORM_APPROACHING");
	pData->Message_Activate = CSFText("TXT_LIGHTNING_STORM");
	pData->Message_Abort = CSFText("Msg:LightningStormActive");

	pData->SW_AITargetingType = SuperWeaponAITargetingMode::LightningStorm;
	pData->SW_Cursor = MouseCursor::GetCursor(MouseCursorType::LightningStorm);
}
Пример #3
0
void SW_HunterSeeker::Initialize(SWTypeExt::ExtData *pData, SuperWeaponTypeClass *pSW)
{
	// Defaults to HunterSeeker values
	pData->HunterSeeker_Type = nullptr;
	pData->HunterSeeker_RandomOnly = false;

	pData->EVA_Detected = VoxClass::FindIndex("EVA_HunterSeekerDetected");
	pData->EVA_Ready = VoxClass::FindIndex("EVA_HunterSeekerReady");
	pData->EVA_Activated = VoxClass::FindIndex("EVA_HunterSeekerLaunched");

	pData->SW_AITargetingType = SuperWeaponAITargetingMode::NoTarget;
	pData->SW_AffectsHouse = SuperWeaponAffectedHouse::Enemies;

	pData->Text_Ready = CSFText("TXT_RELEASE");

	// hardcoded
	pSW->Action = Action::None;
	pData->SW_RadarEvent = false;
}
Пример #4
0
void SW_PsychicDominator::Initialize(SWTypeExt::ExtData *pData, SuperWeaponTypeClass *pSW)
{
	// Defaults to PsychicDominator values
	pData->Dominator_FirstAnimHeight = 750;
	pData->Dominator_SecondAnimHeight = 0;
	pData->Dominator_Ripple = true;
	pData->Dominator_Capture = true;
	pData->Dominator_CaptureMindControlled = true;
	pData->Dominator_CapturePermaMindControlled = true;
	pData->Dominator_CaptureImmuneToPsionics = false;
	pData->Dominator_PermanentCapture = true;

	pData->EVA_Detected = VoxClass::FindIndex("EVA_PsychicDominatorDetected");
	pData->EVA_Ready = VoxClass::FindIndex("EVA_PsychicDominatorReady");
	pData->EVA_Activated = VoxClass::FindIndex("EVA_PsychicDominatorActivated");

	pData->Message_Abort = CSFText("Msg:DominatorActive");

	pData->SW_AITargetingType = SuperWeaponAITargetingMode::PsychicDominator;
	pData->SW_AffectsTarget = SuperWeaponTarget::Infantry | SuperWeaponTarget::Unit;
	pData->SW_Cursor = MouseCursor::First[MouseCursorType::PsychicDominator];
}