snake5 icon

tacstrike enemy sgs code

snake5 | PRO | 06/13/15 09:54:23 AM UTC | 0 ⭐ | 1166 👁️ | Never ⏰ | []
JavaScript |

1.14 KB

|

None

|

0 👍

/

0 👎

global TSEnemy = {};
 
function TSEnemy_Create( eptr, pos, vdir )
{
    E =
    {
        // enemy pointer for additional queries
        eptr = eptr,
        
        // set before tick
        position = pos,
        viewdir = vdir,
        
        // read after tick
        i_crouch = false,
        i_move = vec2(0,0),
        
        // coroutine + timer
        resume_delay = 0.0,
        coro_ai_main = co_create( function( E ){ E.AI_proc(); } ),
        
        // global systems
        move_to_target = null,
    };
    E = class( E, TSEnemy );
    co_resume( E.coro_ai_main, E );
    return E;
}
 
function TSEnemy.destroy()
{
}
 
function TSEnemy.tick( deltaTime )
{
    this.resume_delay -= deltaTime;
    if( this.resume_delay <= 0.0 )
    {
        this.resume_delay = toreal( co_resume( this.coro_ai_main ) );
    }
    
    if( this.move_to_target !== null )
    {
        this.i_move = vec2( this.move_to_target - this.position );
    }
}
 
function TSEnemy.AI_proc()
{
    yield();
    for(;;)
    {
        cp = vec3(-2.5,2.5,0);
        this.move_to_target = cp+vec3(1,0,0);yield(1);
        this.move_to_target = cp+vec3(0,1,0);yield(1);
        this.move_to_target = cp+vec3(-1,0,0);yield(1);
        this.move_to_target = cp+vec3(0,-1,0);yield(1);
        // TODO
        yield();
    }
}

Comments