int PowerRegulatorMenuComponent::handleObjectMenuSelect(SceneObject* sceneObject, CreatureObject* player, byte selectedID) { if (player->isDead() || player->isIncapacitated()) return 1; ManagedReference<BuildingObject*> building = cast<BuildingObject*>(sceneObject->getParentRecursively(SceneObjectType::FACTIONBUILDING).get().get()); ManagedReference<TangibleObject*> powerRegulator = cast<TangibleObject*>(sceneObject); if (building == NULL) return 1; Zone* zone = building->getZone(); if (zone == NULL) return 1; GCWManager* gcwMan = zone->getGCWManager(); if (gcwMan == NULL) return 1; if (!gcwMan->canUseTerminals(player, building, sceneObject)) return 1; if (player->getFaction() != building->getFaction()) { if (selectedID == 228 || selectedID == 20) { if (player->hasSkill("combat_commando_heavyweapon_speed_02")) gcwMan->sendPowerRegulatorControls(player, building, powerRegulator); else player->sendSystemMessage("@faction/faction_hq/faction_hq_response:commando_only"); // Only an experienced commando with heavy weapons training could expect to rig the regulators for overload } } return 0; }
void PowerRegulatorMenuComponent::fillObjectMenuResponse(SceneObject* sceneObject, ObjectMenuResponse* menuResponse, CreatureObject* player) { ManagedReference<BuildingObject*> building = cast<BuildingObject*>(sceneObject->getParentRecursively(SceneObjectType::FACTIONBUILDING).get().get()); if (building == NULL) return; if (player == NULL || player->isDead() || player->isIncapacitated()) return; Zone* zone = building->getZone(); if (zone == NULL) return; GCWManager* gcwMan = zone->getGCWManager(); if (gcwMan == NULL) return; if (!gcwMan->canUseTerminals(player, building, sceneObject)) return; if (gcwMan->isDNASampled(building) && !gcwMan->isPowerOverloaded(building) && player->getFaction() != building->getFaction()) { menuResponse->addRadialMenuItem(228, 3, "@hq:mnu_set_overload"); // Set to overload } }
void TurretControlMenuComponent::fillObjectMenuResponse(SceneObject* sceneObject, ObjectMenuResponse* menuResponse, CreatureObject* player) { ManagedReference<BuildingObject*> building = cast<BuildingObject*>(sceneObject->getParentRecursively(SceneObjectType::FACTIONBUILDING).get().get()); ManagedReference<PlayerObject*> thisPlayer = player->getPlayerObject(); if ( thisPlayer == NULL || building == NULL || player->isDead() || player->isIncapacitated()) return; if(player->getFaction() == 0) player->sendSystemMessage("@faction_recruiter:must_be_declared_use"); // Your faction affiliation must be delcared in order to use that item. Zone* zone = building->getZone(); if(zone == NULL) return; GCWManager* gcwMan = zone->getGCWManager(); if(!gcwMan->canUseTerminals(player, building, sceneObject)) return; if(building->getFaction() == player->getFaction() && player->getFaction() != 0) { menuResponse->addRadialMenuItem(222, 3, "@hq:mnu_turret_control"); // "Turret Control" } //menuResponse->addRadialMenuItem(222, 3, "OH YEA"); }
void UplinkTerminalMenuComponent::fillObjectMenuResponse(SceneObject* sceneObject, ObjectMenuResponse* menuResponse, CreatureObject* player) { ManagedReference<BuildingObject*> building = cast<BuildingObject*>(sceneObject->getParentRecursively(SceneObjectType::FACTIONBUILDING).get().get()); if (building == NULL || player->isDead() || player->isIncapacitated()) return; Zone* zone = building->getZone(); if (zone == NULL) return; GCWManager* gcwMan = zone->getGCWManager(); if (gcwMan == NULL) return; if (!gcwMan->canUseTerminals(player, building, sceneObject)) return; if (building->getFaction() != player->getFaction()) { if (gcwMan->isBaseVulnerable(building) && !gcwMan->isUplinkJammed(building)) { menuResponse->addRadialMenuItem(227, 3, "@hq:mnu_jam"); } } }
void HQMenuComponent::fillObjectMenuResponse(SceneObject* sceneObject, ObjectMenuResponse* menuResponse, CreatureObject* player) { ManagedReference<BuildingObject*> building = cast<BuildingObject*>(sceneObject->getParentRecursively(SceneObjectType::FACTIONBUILDING).get().get()); if (building == NULL) return; if ( player == NULL || player->isDead() || player->isIncapacitated()) return; Zone* zone = building->getZone(); if(zone == NULL) return; GCWManager* gcwMan = zone->getGCWManager(); if(!gcwMan->canUseTerminals(player, building, sceneObject)) return; if(building->getFaction() == player->getFaction()) { menuResponse->addRadialMenuItem(228, 3, "@hq:mnu_defense_status"); if(gcwMan->isShutdownSequenceStarted(building) && building->getPvpStatusBitmask() && CreatureFlag::OVERT){ menuResponse->addRadialMenuItem(231, 3, "@hq:mnu_shutdown"); // Shutdown facility } // donate menus removed menuResponse->addRadialMenuItem(37, 3, "@hq:mnu_donate"); // Donate //menuResponse->addRadialMenuItemToRadialID(37, 225, 3, "@hq:mnu_donate_money"); // Donate MOney menuResponse->addRadialMenuItemToRadialID(37, 226, 3, "@hq:mnu_donate_deed"); // donate defense if(building->getOwnerCreatureObject() == player && building->getPvpStatusBitmask() & CreatureFlag::OVERT){ menuResponse->addRadialMenuItem(38, 3, "@hq:mnu_reset_vulnerability"); // Reset Vulnerability } } else { if(gcwMan->isPowerOverloaded(building) && !gcwMan->isShutdownSequenceStarted(building)){ menuResponse->addRadialMenuItem(230, 3, "@hq:mnu_overload"); // activate overload } } // Admin menus to test out vulnerability manually /* if ( player->getPlayerObject()->isPrivileged()) { //info("player is privelaged", true); menuResponse->addRadialMenuItem(35, 3, "PVP EVENT"); menuResponse->addRadialMenuItemToRadialID(35, MAKEIMPERIAL, 3, "MAKE VULNERABLE"); menuResponse->addRadialMenuItemToRadialID(35, MAKENEUTRAL, 3, "MAKE INVULNERABLE"); } */ //menuResponse->addRadialMenuItem(229, 3, "@player_structure:permission_destroy"); //Destroy Structure }