Author Topic: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013  (Read 10301 times)

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Timer v3.01

Due to a recent suggestion by Snarky, I decided to go ahead and update this module, for the first time in six years! Also, the old download links are all dead anyway. So what's new in v3.0? The timers are now completely OO, which means no more mucking about with everything being called on the Timer class.

Code: Adventure Game Studio
  1. // room script
  2. Timer tBomb;
  3.  
  4. function oFuse_Useinv()
  5. {
  6.   if (player.ActiveInventory == iMatch) tBomb.Set(5.0, eTimerSeconds);
  7. }
  8.  
  9. function room_RepExec()
  10. {
  11.   if (tBomb.IsExpired())
  12.   {
  13.     oBomb.Animate(10, 5); // bomb explosion animation
  14.   }
  15. }

How does it work? Magic, that's how!

Download v3.01

09 August 2013 I've updated this to v3.01, which changes a few things. The first parameter to Timer.Set is now a float to allow setting partial seconds, and there is an optional RoundDirection parameter (following the optional TimerUnit parameter). To pass an integer you can now call Timer.SetInt, or just use IntToFloat. I've added methods Timer.Pause and Timer.UnPause to allow temporarily pausing a timer, and the property Timer.IsPaused to check the current pause state. I've added properties Timer.RunWhileGamePaused and Timer.RunWhileBlocking to give greater control over when the timers are updated (set per instance, defaults are false and true respectively). Finally, Timer.Count was returning the wrong value, so I fixed that bug.

v3.0 Download

Timer v2.01

In making the demo for my Flashlight module, I realized that the way I was storing the timer names was highly susceptible to collision, and that these collisions would result in crashes. This version is merely a fix for this issue.

I've also included a Timer.IsNameValid function for checking timer names for validity. Timer names cannot contain the strings "//TimerStart", "//TimerEnd", nor can they be null or empty Strings. Timer.Set will reject invalid names.

Download Timer v2.01
Read the Timer manual online

Timer v2.0

Now you can create as many timers as you want (:P)! I could have worked this out before, but I was just being lazy, and thinking it through the wrong way. I've rethought this entire module, and I've even completely rewritten it from scratch.

As always, feel free to let me know if you find any issues, or just if you have any comments or questions!

~monkey~

Timer v1.0
I wrote another module. This one basically just gives the user more timers to work with (100 by default). Except that the user can also control whether the timer is updated only while rep_ex is running or while rep_ex_always is running, the timers can be temporarily paused, and you can give the timers names. My original idea was way cooler but it would never work. So...

Mirror v1.0 Thanks Neole!
« Last Edit: 10 Aug 2013, 03:08 by monkey_05_06 »
User was banned for this post.

Janik

  • (Working on a RON game (sort of) )
    • I can help with play testing
    •  
    • I can help with scripting
    •  
Re: MODULE: Timer v1.0
« Reply #1 on: 07 Nov 2006, 22:05 »
What was your original idea?
Play pen and paper D&D? Then try DM Genie - software for Dungeons and Dragons!

Kweepa

  • Mutated Guano Deviser
    • Best Innovation Award Winner 2009, for his modules and plugins
    •  
    • Kweepa worked on a game that was nominated for an AGS Award!
Re: MODULE: Timer v1.0
« Reply #2 on: 07 Nov 2006, 23:30 »
I, also, accept your thinly veiled invitation to ask about the original idea.
Still waiting for Purity of the Surf II

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: MODULE: Timer v1.0
« Reply #3 on: 08 Nov 2006, 03:36 »
Wouldn't you like to know? ;)

I guess it wasn't really way cooler...it just made it sound better to exaggerate...a lot. I was thinking I could offer the user a way to create infinite numbers of named timers...but the overhead in trying to update them all was way more than even remotely reasonable. :-[ :-X

Anyway...I always found the built-in timer functions somewhat limited. So, if anybody finds this useful...great. If not...that's cool.
User was banned for this post.

gypsysnail

  • Snails and cream
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with proof reading
    •  
    • I can help with story design
    •  
    • I can help with web design
    •  
Re: MODULE: Timer v1.0
« Reply #4 on: 08 Nov 2006, 08:36 »
Hey Monkey!! Thank you thank you! This is what I have been waiting for! I need to ask some questions, being such a newbie lol. Ok here goes.... exactly how can the timer work? I will give u an example of how my game is to be. It will be set out as day 1, day 2, day 3, so on to about day 8, and what I am hoping for is the timer could be for such things during the day. Or.... is this timer suited for timing things/tasks/puzzles during a game? And does anything need to be created - sprites such as clocks? Forgive me for bein a newbie, if I have gotten any idea wrong :).
Cheers,
Snail
Believe in afterlife! It's true in a metamorphical way ;)
Ken & Roberta - my inspiration!! 20 years.
U are what you love doing and passionate about - keep up what you love most.

Re: MODULE: Timer v1.0
« Reply #5 on: 08 Nov 2006, 14:13 »
its magic, this morning i wake up with a new game idea,
its a very ambitious idea, not an adventure but rather a RPG - Sim.
a little bit of a mix between oil-imperium and theClou!
I have a good imagination how the programming can be done, but i was the whole day insecure with
the time management of the game, cause i need a lot of timers for this game, thats for sure.

so your module is a present of god  ;D, and a upper advice to make some real game out of this idea.

thanks, its a great thing  :)


monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: MODULE: Timer v1.0
« Reply #6 on: 08 Nov 2006, 22:16 »
Hehehe. := Thanks.

But snail...I'm not entirely sure I understand what you mean. As for keeping track of what day it is, you could do something like:

Code: Adventure Game Studio
  1. // script header
  2. import int day;
  3.  
  4. // global script
  5. int day;
  6. export day;

The module is designed for creating timers to time things (such as tasks or puzzles)...so....I hope I've answered your questions. Anything else you'd like to know, feel free to ask.
User was banned for this post.

gypsysnail

  • Snails and cream
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with proof reading
    •  
    • I can help with story design
    •  
    • I can help with web design
    •  
Re: MODULE: Timer v1.0
« Reply #7 on: 10 Nov 2006, 13:24 »
Ahh thats it, thanks Monkey :):) I had been thinking maybe the timer was for timing tasks and puzzles. I would be interested in knowing more on how your timer would work in timing a puzzle? Maybe an example here, would that be ok? Would design of a puzzle have to be taken in consideration for the timer while designing puzzle images and stuff like that?

Other question, thanks for the info on the day thing :) I am just starting out here and I have a view in my mind, well already have designed some stuff for the Day 1 Day 2 etc etc part such as a room just for "Day 1....." text, but how to actually make it work I have to really think on this, as I am no expert or even intermediate scripter - not yet anyway lol. I also wonder if the day thing works with a game clock? Could you maybe define more on the script if thats ok? I do understand where the script must go yes, but its only one part of a bigger script I feel. If I am posting this stuff in this thread as a wrong thread, please let me know and I will move it to a fresh new thread so forgive me for any mistakes :).
Cheers,
Snail
Believe in afterlife! It's true in a metamorphical way ;)
Ken & Roberta - my inspiration!! 20 years.
U are what you love doing and passionate about - keep up what you love most.

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: MODULE: Timer v1.0
« Reply #8 on: 10 Nov 2006, 15:40 »
Well...hmmm...how about a good old crappy example from our friend the bomb!

Code: Adventure Game Studio
  1. // bomb gets activated
  2. Timer.Set("bomb", GetGameSpeed() * 60 * 5); // sets timer "bomb" for 5 minutes
  3.  
  4. // repeatedly_execute
  5. if ((player.Room == 5) && (Timer.IsExpired("bomb"))) {
  6.   Display("You didn't escape the bomb in time!");
  7.   Display("Game over!");
  8.   }
  9.  
  10. // on_event
  11. if ((event == eEventLeaveRoom) && (data == 5) && (Timer.GetTimerID("bomb") != -1)) {
  12.   Display("You escaped the bomb!");
  13.   Timer.Remove("bomb");
  14.   }

That would set the timer for the bomb, and if the player didn't leave the room within 5 minutes display the game over message; otherwise the timer would be removed.

[EDIT:]

Retrospectively Timer.GetTimerID seems a bit redundant...but then I'm not sure if I want to reduce it to Timer.GetID...Anyway I'm busy right now, so for now it'll stay the way it is.
« Last Edit: 10 Nov 2006, 20:24 by monkey_05_06 »
User was banned for this post.

gypsysnail

  • Snails and cream
    • I can help with animation
    •  
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with proof reading
    •  
    • I can help with story design
    •  
    • I can help with web design
    •  
Re: MODULE: Timer v1.0
« Reply #9 on: 10 Nov 2006, 16:26 »
:D ahhh thanks! That really helps me start off :) I will try it over the weekend and the next week. Cheers :)
Believe in afterlife! It's true in a metamorphical way ;)
Ken & Roberta - my inspiration!! 20 years.
U are what you love doing and passionate about - keep up what you love most.

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: MODULE: Timer v2.0
« Reply #10 on: 11 Feb 2007, 06:19 »
*bump* for new version! Hooray for SSH for lying his way into forcing me to write this new and improved version! :D
User was banned for this post.

Lt. Smash

  • He beats everyone!
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #11 on: 09 Nov 2009, 21:01 »
Hey! Just wanted to ask if someone could reupload the latest version. The links are dead.

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #12 on: 12 Nov 2009, 18:01 »
I'll have to see if I can dig up a copy of this version, otherwise I'll just rescript it.

In the mean-time, there is a mirror of some of my old files here, which includes Timer v1.0. ;)
User was banned for this post.

Lt. Smash

  • He beats everyone!
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #13 on: 13 Nov 2009, 15:49 »
Thanks, that will be very helpful!

Knox

  • Storm Behind The Badge
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #14 on: 01 Oct 2010, 15:07 »
I know this is an older thread, but I was interesting in this module and the link seems to be broken...does anyone have a copy of this? It doesnt seem available on american girl scouts either :P...DOH!
--All that is necessary for evil to triumph is for good men to do nothing.

Lt. Smash

  • He beats everyone!
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #15 on: 01 Oct 2010, 21:07 »
hej I've found this on my hard drive:
http://www.file-upload.net/download-2858801/Timerv2.01.zip.html

have fun!

Knox

  • Storm Behind The Badge
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #16 on: 02 Oct 2010, 05:35 »
Awesome! Thank-you kind sir  :D
--All that is necessary for evil to triumph is for good men to do nothing.

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #17 on: 02 Oct 2010, 07:31 »
Thanks for posting that. I'm actually doing some work to be able to try and better manage and organize my modules and such.. ::)
User was banned for this post.

Alarconte

  • Kneel in front of ZOD, Jor-El Son! xDD
    • I can help with play testing
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #18 on: 18 Oct 2011, 16:45 »
I found the two links of this file down the past weeks and now, any chance to reupload the file?

Thanks!
"Tiny pixelated boobies are the heart and soul of Castlevania"

Galactic Battlefare Capital Choice Part 1 , finished, releasing soon
GBF CC Part 2, WIP

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #19 on: 24 Oct 2011, 05:17 »
Hey, sorry but I don't have a copy of the module handy at the moment (if I indeed have one at all), but it's not a very complicated one. I think if I were to revise this I'd probably take an approach like I did with my StateMachine module where I actually created managed instances of an internal class statically...that's all a bit technical, but how would you like to do something like this?

Code: Adventure Game Studio
  1.   Timer bomb;
  2.   bomb.Load("bomb");
  3.   bomb.Set(20); // optional
  4.   // ....
  5.   if (bomb.Expired) Display("You died!");
User was banned for this post.

Dualnames

  • Local Moderator
  • Rottwheelers
  • Pretty Badass
    • Dualnames worked on a game that was nominated for an AGS Award!
      Dualnames worked on a game that won an AGS Award!
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #20 on: 24 Oct 2011, 05:37 »
When all else fails, dualnames wins and eats your heart out.

http://www.mediafire.com/?trszlvdho9715s7
No more military army stuff. I'm alive and back.

Alarconte

  • Kneel in front of ZOD, Jor-El Son! xDD
    • I can help with play testing
    •  
    • I can help with story design
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: MODULE: Timer v2.01 - Updated 14 Feb. 2007
« Reply #21 on: 25 Oct 2011, 11:38 »
thank you guys, so servicial!
"Tiny pixelated boobies are the heart and soul of Castlevania"

Galactic Battlefare Capital Choice Part 1 , finished, releasing soon
GBF CC Part 2, WIP

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: MODULE: Timer v3.0 - Now OO! Updated 09 August 2013
« Reply #22 on: 09 Aug 2013, 18:13 »
Six year bump baby!

Update in the first post. Download link
« Last Edit: 10 Aug 2013, 03:17 by monkey_05_06 »
User was banned for this post.

Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #23 on: 07 Dec 2015, 14:15 »
Two and half year bump baby!

I don't suppose anyone has a working link for 3.01 by any chance?
Calico Reverie - Independent Game Development, Pixel Art & Other Stuff
Games: Mi - Starlit Grave - IAMJASON - Aractaur - blind to siberia - Wrong Channel - Memoriae - Point Of No Return

IHarvestBrains

  • Get me a 100 brains and then we can talk.
    • I can help with backgrounds
    •  
    • I can help with characters
    •  
    • I can help with play testing
    •  
    • I can help with translating
    •  
    • I can help with web design
    •  
Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #24 on: 10 Aug 2017, 11:59 »
I would like a link for the v3.01 as well, please :)

Crimson Wizard

  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #25 on: 10 Aug 2017, 15:27 »
Oh, what a coincidence, I was recently thinking that I would use such module in the game I am working on too :).

Crimson Wizard

  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #26 on: 13 Aug 2017, 00:15 »
Meanwhile I decided to write my own timer implementation. I can release it as an alternative module later, if people find it usable.

Since AGS 3.4.0 supports custom managed structs, I made timer a pointer type. That adds bit complexity, but hopefully not too much to not use it (you are using pointers to Characters and others too, so...). And this will let you pass Timer objects around your script too, assigning variable to variable, as function parameter or return value.

Here is the code to the header and script body:

EDIT: updated the code

Timer.ash
Code: Adventure Game Studio
  1.  
  2. // Maximal number of timers, change at will (not related to built-in AGS limit).
  3. #define MAX_TIMERS 20
  4.  
  5. managed struct Timer
  6. {
  7.   /// Start the timer, giving timeout in game ticks.
  8.   import static Timer *Start(int timeout, RepeatStyle repeat = eOnce);
  9.   /// Start the timer, giving timeout in real time (seconds).
  10.   /// Remember that timer can be only as precise as your GameSpeed (40 checks per
  11.   /// second, or 0.025s by default).
  12.   import static Timer *StartRT(float timeout_s, RepeatStyle repeat = eOnce);
  13.   /// Stop the timer
  14.   import void Stop();
  15.  
  16.   /// Tells whether timer is currently active (counting down).
  17.   import readonly attribute bool  IsActive;
  18.   /// Signal property telling that the timer has expired. This flag will remain set
  19.   /// for one game tick only and self-reset afterwards.
  20.   import readonly attribute bool  EvtExpired;
  21.  
  22.   /// Tells whether timer has just expired. Safe to pass null-pointer.
  23.   import static bool   HasExpired(Timer *t);
  24.   /// Stops the running timer. Safe to pass null-pointer.
  25.   import static void   StopIt(Timer *t);
  26.  
  27.   protected int   _id; // internal ID of the timer
  28.   protected bool  _realtime; // is timeout in seconds (otherwise in game ticks)
  29.   protected float _timeout; // timeout (ticks or ms)
  30.   protected bool  _repeat; // should auto-repeat or not
  31.   protected float _remains; // time remaining (ticks or seconds)
  32.   protected bool  _evt; // expired event flag
  33. };
  34.  

Timer.asc
Code: Adventure Game Studio
  1. // Check against this value instead of 0.0 to reduce potential floating-point mistakes
  2. #define TINY_FLOAT 0.00001
  3.  
  4. // Internal timer references, need them to actually count down
  5. Timer *Timers[MAX_TIMERS];
  6. // Number of seconds in a game tick (updated)
  7. float GameTickTime;
  8.  
  9.  
  10. // Find free timer slot, returns internal ID, or -1 if timers limit reached
  11. int FindFreeSlot()
  12. {
  13.   int i;
  14.   for (i = 0; i < MAX_TIMERS; i++)
  15.   {
  16.     if (Timers[i] == null)
  17.       return i;
  18.   }
  19.   return -1;
  20. }
  21. // Remove timer reference
  22. void RemoveRef(this Timer*)
  23. {
  24.   if (this._id >= 0)
  25.   {
  26.     Timers[this._id] = null;
  27.     this._id = -1;
  28.   }
  29. }
  30. // Stop the timer
  31. void Timer::Stop()
  32. {
  33.   this.RemoveRef();
  34.   this._evt = false;
  35. }
  36. // Init timer parameters
  37. void Init(this Timer*, int id, bool realtime, float timeout, RepeatStyle repeat)
  38. {
  39.   this._id = id;
  40.   this._realtime = realtime;
  41.   this._timeout = timeout;
  42.   this._repeat = repeat;
  43.   this._remains = timeout;
  44.   this._evt = false;
  45. }
  46. // Start the timer with the given parameters
  47. Timer *StartTimer(bool realtime, float timeout, RepeatStyle repeat)
  48. {
  49.   int id = FindFreeSlot();
  50.   if (id == -1)
  51.   {
  52.     Display("Timer.asc: timers limit reached, cannot start another timer before any of the active ones has stopped.");
  53.     return null;
  54.   }
  55.   Timer *timer = new Timer;
  56.   timer.Init(id, realtime, timeout, repeat);
  57.   Timers[id] = timer;
  58.   return timer;
  59. }
  60. // Start the timer, giving timeout in game ticks.
  61. static Timer *Timer::Start(int timeout, RepeatStyle repeat)
  62. {
  63.   return StartTimer(false, IntToFloat(timeout), repeat);
  64. }
  65. // Start the timer, giving timeout in real time (seconds).
  66. // Remember that timer can be only as precise as your GameSpeed (40 checks per
  67. // second, or 0.025s by default).
  68. static Timer *Timer::StartRT(float timeout_s, RepeatStyle repeat)
  69. {
  70.   return StartTimer(true, timeout_s, repeat);
  71. }
  72. // Tells whether timer is currently active (counting down).
  73. bool get_IsActive(this Timer*)
  74. {
  75.   return this._id >= 0;
  76. }
  77. // Check to know if timer has expired. This property will only return TRUE once,
  78. // and will reset afterwards until timer restarts (automatically or manually).
  79. bool get_EvtExpired(this Timer*)
  80. {
  81.   return this._evt;
  82. }
  83. // Tells whether timer has just expired. Safe to pass null-pointer.
  84. static bool Timer::HasExpired(Timer *t)
  85. {
  86.   return t != null && t.get_EvtExpired();
  87. }
  88. // Stops the running timer. Safe to pass null-pointer.
  89. static void Timer::StopIt(Timer *t)
  90. {
  91.   if (t != null)
  92.     t.Stop();
  93. }
  94. // Countdown once and check if timeout was reached
  95. bool Countdown(this Timer*)
  96. {
  97.   // Otherwise, counting down
  98.   if (this._realtime)
  99.     this._remains -= GameTickTime;
  100.   else
  101.     this._remains -= 1.0;
  102.   // If timer just ran out, set event flag
  103.   if (this._remains <= TINY_FLOAT)
  104.   {
  105.     this._evt = true;
  106.     if (this._repeat)
  107.       this._remains = this._timeout;
  108.     return this._repeat; // keep the timer only if it is repeating one
  109.   }
  110.   this._evt = false;
  111.   return true;
  112. }
  113.  
  114. // Repeat each game tick, even if paused or during blocking action
  115. function repeatedly_execute_always()
  116. {
  117.   // We have to update value of GameTickTime each time, unfortunately, in case game speed changed
  118.   GameTickTime = 1.0 / IntToFloat(GetGameSpeed());
  119.  
  120.   int i;
  121.   for (i = 0; i < MAX_TIMERS; i++)
  122.   {
  123.     Timer *timer = Timers[i];
  124.     if (timer != null)
  125.     {
  126.       if (!timer.Countdown())
  127.       {
  128.         // If timer has stopped, remove its reference from the array
  129.         // (but keep event flag to let other scripts check it)
  130.         timer.RemoveRef();
  131.       }
  132.     }
  133.   }
  134. }
  135.  

Use example:
Code: Adventure Game Studio
  1. Timer *tSay;
  2. function room_AfterFadeIn()
  3. {
  4.   tSay = Timer.StartRT(3.0, eRepeat);
  5. }
  6. function room_RepExec()
  7. {
  8.   if (Timer.HasExpired(tSay))
  9.   {
  10.     cBman.SayBackground("hello!");
  11.   }
  12. }
  13.  
« Last Edit: 18 Aug 2017, 22:18 by Crimson Wizard »

Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #27 on: 10 Sep 2017, 15:01 »
Hey, just wanted to shout that I REALLY LIKE this module and can't live without it now. Thanks for making it! (nod)

Dave Gilbert

  • Mittens Vassal
  • AGS Baker
  • Hi. Our names are FRIGGING ADORABLE.
    • Lifetime Achievement Award Winner
    •  
    • Dave Gilbert worked on a game that was nominated for an AGS Award!
      Dave Gilbert worked on a game that won an AGS Award!
Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #28 on: 13 Sep 2017, 18:41 »
How. Did I. Not see this. Before now.

This would have saved me so much aggravation. Downloading and experimenting with it now!
« Last Edit: 13 Sep 2017, 18:50 by Dave Gilbert »

Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #29 on: 13 Sep 2017, 22:33 »
My main use for Crimson Wizard module is doing something after a tween is finished when that tween must be nonblocking. Example: Turn the visible property of a GUI false once I have tweened it's Transparency to 100.

Crimson Wizard

  • AGS Project Tracker Admins
    • Best Innovation Award Winner 2013, for spearheading the AGS 3.3.0 project
    •  
    • Lifetime Achievement Award Winner
    •  
    • Crimson Wizard worked on a game that was nominated for an AGS Award!
      Crimson Wizard worked on a game that won an AGS Award!
Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #30 on: 13 Sep 2017, 22:48 »
My main use for Crimson Wizard module is doing something after a tween is finished when that tween must be nonblocking. Example: Turn the visible property of a GUI false once I have tweened it's Transparency to 100.
I never used Tween module, but is not there a way to just check if tween has ended? If not maybe Edmundito could add a kind of end signal to the tween, similar to ones I use in my modules, so that you could just check it in repeatedly execute, without need of extra module.

Monsieur OUXX

  • Cavefish
  • Mittens Vassal
  • Mittens Half Initiate
    • I can help with proof reading
    •  
    • I can help with translating
    •  
    • I can help with voice acting
    •  
Re: MODULE: Timer v3.01 - Now OO! Updated 09 August 2013
« Reply #31 on: 14 Sep 2017, 09:53 »
I never used Tween module, but is not there a way to just check if tween has ended?

I was using the old Tweens (1.5 I think?) and I remember it was a pain to check if a tween was finished -- not sayin' that feature was not available, but if it was, it wasn't obvious to find, 'cause I never found it.
I've just started thinking of migrating to the latest Tweens and didn't check if it was there, thinking "of course it will be there, how could it not? the module is mature and ending a tween is as important as starting it". You're scaring me now.
« Last Edit: 29 Sep 2017, 10:29 by Monsieur OUXX »