Index · Preferences · Help
Announcements · BYOND Features · Bug Reports · Fixes and Features · Developer How-To · Code Problems · Design Philosophy · Creations · Classified Ads · Gaming · Computers & Technology · Community
Forum Search:

[Advanced Search]

[Messages in this Thread] [Show All (3)] [Return to Design Philosophy]

Author:Garthor [Posts]
Date:11/7/09 1:58 pm
Topic:Re: Sleep(1.1)?
Post ID:726191
Parent ID:726176
mob
    //time at which this mob may next move
    var/tmp/nextmove = 0
    //leftover move delay, in ticks
    var/tmp/movefraction = 0
    //delay (in ticks) between each move
    var/movedelay = 2.5 //4 moves per second
    proc
        //sets a mob's move speed (in moves per second)
        setMoveSpeed(var/N)
            movedelay = 10/N

    verb
        setMoveVerb(var/N as num)
            set name = "set move speed"
            set desc = "set your move speed in moves per second"
            setMoveSpeed(N)

client
    Move()
        //block premature attempts to move
        if(world.time < mob.nextmove) return 0
        //move the mob
        .=..()
        //calculate our delay for this movement
        var/delay = round(mob.movedelay)
        if(mob.movefraction >= 1)
            mob.movefraction--
            delay++
        //add the fractional component of movedelay to movefraction
        mob.movefraction += mob.movedelay - round(mob.movedelay)
        //set nextmove
        mob.nextmove = world.time + delay

Messages in this Thread: [Show All (3)]

  Sleep(1.1)? Chris Gayle (11/7/09 1:04 pm)
      Re: Sleep(1.1)? Jeff8500 (11/7/09 3:22 pm)
      Re: Sleep(1.1)? Garthor (11/7/09 1:58 pm)