Script:Files:script/maps/misctestmaps.script

From Mod Wiki
Revision as of 10:22, 5 November 2007 by Wizz (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
object mapObject_CarryableBoxMap : mapObject_Default {
    void            preinit();
    void            destroy();

    void            InitObjectives();

    void            CompleteObjective( float index, entity p );
    void            OnCarryableItemStolen( string actionName );
    void            OnCarryableItemReturned( string actionName );

    void            DeliverPodThread();


    entity            objective1Arrow1;
    entity            objective1Arrow2;
    entity            objective2Arrow1;
    entity            objective2Arrow2;

    entity            objective1Marker;
    entity            objective2Marker;

    entity            carryable1;
    entity            carryable2;
    entity            carryable3;
};

mapObject_Base Carryable_Box_MapScript() {
    return new mapObject_CarryableBoxMap;
}

void mapObject_CarryableBoxMap::preinit() {
}

void mapObject_CarryableBoxMap::destroy() {
}

void mapObject_CarryableBoxMap::InitObjectives() {
    entity territory = sys.getEntity( "strogg_base_deployzone" );
    territory.setGameTeam( gdfTeam );
    territory.setActive( true );
    territory = sys.getEntity( "strogg_base_deployzone_2" );
    territory.setGameTeam( stroggTeam );
    territory.setActive( true );

    objective1Marker = sys.getEntity( "info_objective_single" );
    objective1Arrow1 = sys.getEntity( "info_objective_single_progress_1" );
    objective1Arrow2 = sys.getEntity( "info_objective_single_progress_2" );

    objective2Marker = sys.getEntity( "info_objective_multi" );
    objective2Arrow1 = sys.getEntity( "info_objective_multi_progress_1" );
    objective2Arrow2 = sys.getEntity( "info_objective_multi_progress_2" );

    objective1Arrow1.vStartObjective();
    objective1Arrow2.vStartObjective();

    objective1Marker.vStartObjective();
    objective2Marker.vStartObjective();


    carryable1 = sys.getEntity( "carryable_item_caller_1" );
    carryable2 = sys.getEntity( "carryable_item_caller_2" );
    carryable3 = sys.getEntity( "carryable_item_caller_3" );

    gdfTeam.SetRespawnWait( 1 );
    stroggTeam.SetRespawnWait( 1 );
    CreateRespawnTimeThread( gdfTeam );

    objManager.setNextObjective( gdfTeam, 0 );
    objManager.setNextObjective( stroggTeam, 0 );

    CompleteObjective( 0, $null_entity );
}

void mapObject_CarryableBoxMap::CompleteObjective( float index, entity p ) {
    sys.println( "mapObject_CarryableBoxMap::CompleteObjective: " + index );

    if ( index == 0 ) {
        objective1Arrow1.vFinishObjective();
        objective1Arrow2.vFinishObjective();
        objective1Marker.vFinishObjective();

        objManager.setNextObjective( gdfTeam, 1 );
        objManager.setNextObjective( stroggTeam, 1 );

        objective2Arrow1.vStartObjective();
        objective2Arrow2.vStartObjective();

        thread DeliverPodThread();
    }

    if ( index == 1 ) {
        objective2Arrow1.vFinishObjective();
        objective2Arrow2.vFinishObjective();
        objective2Marker.vFinishObjective();

        gameRules.setWinningTeam( stroggTeam );
        gameRules.endGame();
    }
}

void mapObject_CarryableBoxMap::DeliverPodThread() {
    sys.threadName( "mapObject_CarryableBoxMap::DeliverPodThread" );

    // wait before triggering the carryables to come flying in (staggered to look cooler)
    sys.wait( 5.0f );
    carryable1.vOnDeploy();
    sys.wait( 5.0f );
    carryable2.vOnDeploy();
    sys.wait( 5.0f );
    carryable3.vOnDeploy();
}

void mapObject_CarryableBoxMap::OnCarryableItemStolen( string actionName ) {

    if ( actionName == "maleficus_bot_action_1" ) {
        sys.print("He Stole The Cone!\n");
    }
}

void mapObject_CarryableBoxMap::OnCarryableItemReturned( string actionName ) {
    if ( actionName == "maleficus_bot_action_1" ) {
        sys.print("The Cone Was Returned!\n");
    }
}