398 lines
8.4 KiB
Plaintext
398 lines
8.4 KiB
Plaintext
|
|
object task {
|
|
void preinit();
|
|
void destroy();
|
|
|
|
void Idle();
|
|
|
|
void OnTaskSelected();
|
|
void OnTaskDeselected();
|
|
|
|
void SetupWaypointIcon();
|
|
void FreeWaypointIcon();
|
|
|
|
void ToolTipThread();
|
|
|
|
void SendToolTipForClass( float pClass );
|
|
void SendToolTipForTeam( object needTeam );
|
|
|
|
float commandMapIcon;
|
|
|
|
float toolTipThreadId;
|
|
}
|
|
|
|
void task::preinit() {
|
|
commandMapIcon = -1;
|
|
toolTipThreadId = -1;
|
|
}
|
|
|
|
void task::destroy() {
|
|
FreeWaypointIcon();
|
|
}
|
|
|
|
void task::Idle() {
|
|
|
|
}
|
|
|
|
void task::OnTaskSelected() {
|
|
toolTipThreadId = thread ToolTipThread();
|
|
|
|
SetupWaypointIcon();
|
|
}
|
|
|
|
void task::OnTaskDeselected() {
|
|
if ( toolTipThreadId != -1 ) {
|
|
sys.terminate( toolTipThreadId );
|
|
toolTipThreadId = -1;
|
|
}
|
|
|
|
FreeWaypointIcon();
|
|
}
|
|
|
|
void task::FreeWaypointIcon() {
|
|
if ( commandMapIcon == -1 ) {
|
|
return;
|
|
}
|
|
|
|
entity ent = getTaskEntity();
|
|
if ( ent == $null_entity ) {
|
|
// we lost the entity, use local player instead
|
|
ent = sys.getLocalPlayer();
|
|
}
|
|
|
|
sys.freeCMIcon( ent, commandMapIcon );
|
|
commandMapIcon = -1;
|
|
}
|
|
|
|
void task::SetupWaypointIcon() {
|
|
FreeWaypointIcon();
|
|
|
|
player l = sys.getLocalPlayer();
|
|
if ( l != $null_entity ) {
|
|
float materialIndex = GetMaterial( getKey( "mtr_cm_icon" ) );
|
|
if ( materialIndex != -1 ) {
|
|
entity taskEntity = getTaskEntity();
|
|
if ( taskEntity != $null_entity ) {
|
|
commandMapIcon = sys.allocCMIcon( taskEntity, getFloatKey( "icon_sort_cm_request" ) );
|
|
sys.setCMIconMaterial( commandMapIcon, materialIndex );
|
|
sys.setCMIconColorMode( commandMapIcon, CM_NORMAL );
|
|
sys.setCMIconSize( commandMapIcon, 20.0f );
|
|
sys.setCMIconColor( commandMapIcon, g_colorWhite, 1.0f );
|
|
sys.setCMIconFlag( commandMapIcon, CMF_ALWAYSKNOWN );
|
|
sys.flashCMIcon( commandMapIcon, -1, 1, -1 );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void task::ToolTipThread() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
|
|
if ( lPlayer != $null_entity && objManager.gameState == GS_GAMEON ) {
|
|
team_base team = lPlayer.getGameTeam();
|
|
if ( team != $null_entity ){
|
|
string ability = getKey( "tooltip_ability" );
|
|
boolean allowTooltip = true;
|
|
|
|
if ( ability != "" ) {
|
|
allowTooltip = lPlayer.hasAbility( ability );
|
|
}
|
|
|
|
if ( lPlayer.isDisguised() ) {
|
|
allowTooltip = false;
|
|
}
|
|
|
|
if ( allowTooltip ) {
|
|
float toolTip = GetToolTip( getKey( "tt_task" ) );
|
|
|
|
if ( toolTip != -1 ) {
|
|
sys.wait( 4 );
|
|
if( lPlayer.getHealth() > 0 ) {
|
|
if ( lPlayer.getProxyEntity() == $null_entity ) {
|
|
if ( commandMapIcon != -1 ) {
|
|
sys.flashCMIcon( commandMapIcon, -1, 3, -1 );
|
|
}
|
|
lPlayer.sendToolTip( toolTip );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
toolTipThreadId = -1;
|
|
}
|
|
|
|
void task::SendToolTipForClass( float pClass ) {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer == $null_entity || objManager.gameState != GS_GAMEON || lPlayer.getHealth() <= 0 ) {
|
|
return;
|
|
}
|
|
|
|
if ( lPlayer.getProxyEntity() != $null_entity ) {
|
|
return;
|
|
}
|
|
|
|
team_base team = lPlayer.getGameTeam();
|
|
if ( team != $null_entity ){
|
|
float toolTip = -1;
|
|
if ( pClass == -1 || lPlayer.getPlayerClass() == pClass ) {
|
|
toolTip = GetToolTip( getKey( "tt_task" ) );
|
|
}
|
|
|
|
if ( toolTip != -1 ) {
|
|
if ( commandMapIcon != -1 ) {
|
|
sys.flashCMIcon( commandMapIcon, -1, 3, -1 );
|
|
}
|
|
flashWorldIcon( 3000 );
|
|
lPlayer.sendToolTip( toolTip );
|
|
}
|
|
}
|
|
}
|
|
|
|
void task::SendToolTipForTeam( object needTeam ) {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer == $null_entity || objManager.gameState != GS_GAMEON || lPlayer.getHealth() <= 0 ) {
|
|
return;
|
|
}
|
|
|
|
if ( lPlayer.getProxyEntity() != $null_entity ) {
|
|
return;
|
|
}
|
|
|
|
team_base team = lPlayer.getGameTeam();
|
|
if ( team == needTeam || needTeam == $null_entity ){
|
|
float toolTip = GetToolTip( getKey( "tt_task" ) );
|
|
|
|
if ( toolTip != -1 ) {
|
|
if ( commandMapIcon != -1 ) {
|
|
sys.flashCMIcon( commandMapIcon, -1, 3, -1 );
|
|
}
|
|
flashWorldIcon( 3000 );
|
|
lPlayer.sendToolTip( toolTip );
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_dummy : task {
|
|
}
|
|
|
|
object task_deploy_base : task {
|
|
}
|
|
|
|
object task_deploy_object : task_deploy_base {
|
|
}
|
|
|
|
object task_deploy_mines : task_deploy_base {
|
|
}
|
|
|
|
// primary objective
|
|
object task_hack_objective_gdf : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
if ( !lPlayer.isDisguised() ) {
|
|
SendToolTipForTeam( $null );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// primary objective
|
|
object task_hack_objective_strogg : task {
|
|
void DelayedToolTipThread() {
|
|
sys.wait( 4.0f );
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( !lPlayer.isDisguised() ) {
|
|
SendToolTipForTeam( $null );
|
|
}
|
|
}
|
|
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
thread DelayedToolTipThread();
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_construct_objective : task {
|
|
}
|
|
|
|
// primary objective
|
|
object task_construct_objective_gdf : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForTeam( $null );
|
|
}
|
|
}
|
|
}
|
|
|
|
// primary objective
|
|
object task_construct_objective_strogg : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForTeam( $null );
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_destroy_objective : task {
|
|
}
|
|
|
|
// primary objective
|
|
object task_destroy_objective_strogg : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForTeam( $null );
|
|
}
|
|
}
|
|
}
|
|
|
|
// primary objective
|
|
object task_destroy_objective_gdf : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForTeam( $null );
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_deployable_disable : task {
|
|
}
|
|
|
|
object task_repair_deployable : task {
|
|
}
|
|
|
|
object task_escort_mcp : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForTeam( $null );
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_capture_spawn : task {
|
|
}
|
|
|
|
object task_liberate_spawn : task {
|
|
}
|
|
|
|
object task_defuse_object_gdf : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForClass( g_playerClassEngineer );
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_defuse_object_strogg : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForClass( g_playerClassConstructor );
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_defend : task {
|
|
}
|
|
|
|
object task_pickup : task {
|
|
}
|
|
|
|
object task_select_spawnhost : task {
|
|
}
|
|
|
|
object task_repair_vehicle : task {
|
|
}
|
|
|
|
object task_need_passenger : task {
|
|
}
|
|
|
|
object task_revive_player_gdf : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
boolean alive = lPlayer.getHealth() > 0;
|
|
if ( alive ) {
|
|
SendToolTipForClass( g_playerClassMedic );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_revive_player_strogg : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
boolean alive = lPlayer.getHealth() > 0;
|
|
if ( alive ) {
|
|
SendToolTipForClass( g_playerClassTechnician );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_heal_player : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForClass( g_playerClassMedic );
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_supply_player_gdf : task {
|
|
}
|
|
|
|
object task_supply_player_strogg : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
SendToolTipForClass( g_playerClassTechnician );
|
|
}
|
|
}
|
|
}
|
|
|
|
object task_create_spawnhost : task {
|
|
}
|
|
|
|
object task_kill_enemy : task {
|
|
}
|
|
|
|
object task_item_pickup_outskirts : task {
|
|
void preinit() {
|
|
player lPlayer = sys.getLocalPlayer();
|
|
if ( lPlayer != $null_entity ) {
|
|
team_base team = lPlayer.getGameTeam();
|
|
if ( team == gdfTeam ) {
|
|
SendToolTipForTeam( gdfTeam );
|
|
} else if ( team == stroggTeam ) {
|
|
if ( objManager.gameState != GS_GAMEON || lPlayer.getHealth() <= 0 ) {
|
|
return;
|
|
}
|
|
|
|
if ( lPlayer.getProxyEntity() != $null_entity ) {
|
|
return;
|
|
}
|
|
|
|
float toolTip = GetToolTip( getKey( "tt_task_strogg" ) );
|
|
|
|
if ( toolTip != -1 ) {
|
|
if ( commandMapIcon != -1 ) {
|
|
sys.flashCMIcon( commandMapIcon, -1, 3, -1 );
|
|
}
|
|
flashWorldIcon( 3000 );
|
|
lPlayer.sendToolTip( toolTip );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |