-
-
Save yeerkkiller1/7404421 to your computer and use it in GitHub Desktop.
observ := observable.NewObservable(g, 0) | |
observ.OnChanged(g, func(new observable.Object, old observable.Object) { | |
if new.(int) < 1 { | |
return | |
} | |
fmt.Println("First set", new, "(", old,") call gets", observ.Get()); | |
}) | |
observ.OnChanged(g, func(new observable.Object, old observable.Object) { | |
if new.(int) < 1 { | |
return | |
} | |
fmt.Println("Second set", new, "(", old,") call gets", observ.Get()); | |
if new.(int) < 10 { | |
observ.Set(new.(int) + 1) | |
} | |
}) | |
observ.OnChanged(g, func(new observable.Object, old observable.Object) { | |
if new.(int) < 1 { | |
return | |
} | |
fmt.Println("Third set", new, "(", old,") call gets", observ.Get()); | |
}) | |
observ.Set(1); |
So you can have a Status flag, when it is set to DEAD you respawn. BUUUUT you still output a message that you died, even though the announcer subscribed after.
With my code this yields:
First set 1 ( 0 ) call gets 1
Second set 1 ( 0 ) call gets 1
Third set 1 ( 0 ) call gets 1
First set 2 ( 1 ) call gets 2
Second set 2 ( 1 ) call gets 2
Third set 2 ( 1 ) call gets 2
First set 3 ( 2 ) call gets 3
Second set 3 ( 2 ) call gets 3
Third set 3 ( 2 ) call gets 3
First set 4 ( 3 ) call gets 4
Second set 4 ( 3 ) call gets 4
Third set 4 ( 3 ) call gets 4
First set 5 ( 4 ) call gets 5
Second set 5 ( 4 ) call gets 5
Third set 5 ( 4 ) call gets 5
First set 6 ( 5 ) call gets 6
Second set 6 ( 5 ) call gets 6
Third set 6 ( 5 ) call gets 6
First set 7 ( 6 ) call gets 7
Second set 7 ( 6 ) call gets 7
Third set 7 ( 6 ) call gets 7
First set 8 ( 7 ) call gets 8
Second set 8 ( 7 ) call gets 8
Third set 8 ( 7 ) call gets 8
First set 9 ( 8 ) call gets 9
Second set 9 ( 8 ) call gets 9
Third set 9 ( 8 ) call gets 9
First set 10 ( 9 ) call gets 10
Second set 10 ( 9 ) call gets 10
Third set 10 ( 9 ) call gets 10
Knockout will alternate between One and Two, and then print out Three in reverse.
I print it as the subscriptions were set up (I buffer setting if you set while the callbacks are being called)