« first day (206 days earlier)      last day (3353 days later) » 
00:00 - 18:0018:00 - 00:00

6:01 PM
I feel something like skiwi's recursion problem above would be a good kind of question for CU
Unrelated topic, @SimonAndréForsberg I was curious if you ever used something like this... Looks like a good type of library if it works the way it is supposed to, which is kind of a universal measure library with conversions and all
Its use is above my head right now, but I feel for real-world/business/science applications this would be a tremendous tool
 
@Phrancis what exactly is it you mean?
 
^ This may illustrate as little better
 
ah, I understand.
No, I have never used any such library.
 
When I was talking with a monkey the other day, he was telling me about TimeUnit library but lamented that there was not a library for other types of measurements
 
IMO, when you need other types of measurements, such as converting from radians to degrees, it is very easy to quickly implement the formula for that
or for converting a foot to centimeters, etc.
 
6:08 PM
Good point
I guess if it's something you had to do a lot though just being able to UnitConverter toKilometers = MILE.getConverterTo(KILOMETER); could become handy
 
also, how many of the horrible imperial units should be included in such a library?
@Phrancis if so, then you would probably write such a class.
 
^that - I hate imperial units, but here in the USA (and in the UK) they are still used frequently
 
it's really all about multiplication and division.
 
Imperial makes me think of the Middle Ages
 
Huh, this is neat
 
6:16 PM
The Imperial Age came about 300 years after the Middle Ages, I believe.
 
ChucK is a concurrent, strongly timed audio programming language for real-time synthesis, composition, and performance, which runs on Linux, Mac OS X, Microsoft Windows, and iOS. It is designed to favor readability and flexibility for the programmer over other considerations such as raw performance. It natively supports deterministic concurrency and multiple, simultaneous, dynamic control rates. Another key feature is the ability to live code; adding, removing, and modifying code on the fly, while the program is running, without stopping or restarting. It has a highly precise timing/concurrency...
 
audio programming language?
 
Right!!
 // our signal graph (patch)
 SinOsc f => dac;
 // set gain
 .3 => f.gain;
 // an array of pitch classes (in half steps)
 [ 0, 2, 4, 6, 9, 10 ] @=> int hi[];

 // infinite time loop
 while( true )
 {
     // choose a note, shift registers, convert to frequency
     Std.mtof( 65 + Std.rand2(0,1) * 43 +
         hi[Std.rand2(0,hi.cap()-1)] ) => f.freq;

     // advance time by 120 ms
     120::ms => now;
 }
(wiki example)
I actually understand what all this stuff means, how cool. I might need to look into this at some point :D
 
Looks... 'orrible
 
SO has a tag for it, 13 questions
 
6:36 PM
Ugh, a bug has entered my program
 
@SimonAndréForsberg So you quickly implement it whenever you need it, or have utility class ? I would say having a library that would have a module for each sets of units would be interesting (distance/volume/etc).
 
I broke my parser :(
 
Your parser does not seems very solid ;)
 
It's quite solid once it works
 
What have you done ?
 
6:51 PM
Wanting to change how one thing works, to accodomate for the updated parser
Didn't go as planned
If an ActionStart entry has no sub entries, it cannot parse it
Figured a way around it though
 
@Marc-Andre there's quite a lot of units in the world though. I'd rather implement it when I need it then to implement all and only use three of them.
Besides, what if the units actually change?
 
You update the library if the unit change. If an api change, you need to change your code. I don't see how it would be that much of a problem.
 
And that's why I would modulate the library into set of units( I'm referencing the : alot of units exists argument) . The things is your re-implementing the same formula over and over.
I would have something like Imperial - US library, Imperail - UK, etc. Or you could have it all bundled.
 
7:06 PM
there are very few times in my years of programming that I have had to convert units. Probably the only one is converting between radians and degrees, back and forth.
 
So. Much. Writing.
3
 
Well then that's good for you. But I would guess that in some niche sector of programation that would be quite handy.
 
@GreyFox That. Is. What. Chat. Is. For.
 
This seems like a completely legit thing to do when debugging
lineReader.nextLineMatches(line -> {
    System.out.println("line = " + line);
    return false;
});
 
@Marc-Andre then they probably use libraries, or reinvent the stuff over and over again.
@skiwi using an actual debugger would be more legit.
 
7:09 PM
Or using a logger would be an option too
always nice to just change the logging configuration on a live instance to have more information about what's going on
 
Finally!
 
> Updated ActionStartEntryParser to make it easier to work with.
Fixed bug when having an ActionStart entry inside an ActionStart entry.
 
loggers ftw
 
working code ftw
 
@SimonAndréForsberg I am helping @Phrancis get the origin stories together for the faction. I have rewritten the same paragraph easily 4 times so far, haha.
 
7:20 PM
where's my new build @Duga?
 
@skiwi poof, gone! There it is!
 
good ;)
So I kinda forgot why I did that update
Now onto figuring out why it does display an atk / hp when a card gets drawn from the deck
 
@GreyFox While writing code certainly has challenges, writing a coherent and interesting story does have some unique challenges!
 
@Phrancis And writing coherent and interesting documentation is really the hardest
 
@Phrancis Agreed! But I think the important base pieces are finally falling into place.
 
7:37 PM
[skiwi2/HearthMonitor] build #27 for commit eca4437a on branch develop passed
 
well, I implemented biomes
ugly code incoming:
public enum BiomeType {
    WOODLANDS, MOUNTAINOUS, GREATPLAINS, WASTELANDS, SWAMPY, AQUATIC;

    public static HashMap<Tile.TileType, Integer> getTilePercentages(BiomeType type) {
        HashMap<Tile.TileType, Integer> tilePercentages = new HashMap<Tile.TileType, Integer>();

        //should add up to 100
        switch (type) {
            case WOODLANDS:
                tilePercentages.put(Tile.TileType.CAPITAL, 2);
                tilePercentages.put(Tile.TileType.FOREST, 40);
                tilePercentages.put(Tile.TileType.GRASS, 20);
and then this lovely number:
private void generateBiomeRegion() {
    int randomBiomeNumber = this.random.nextInt(BiomeType.values().length);
    this.biomeType =  BiomeType.values()[randomBiomeNumber];

    HashMap<Range, Tile.TileType> ranges = new HashMap<Range, Tile.TileType>();
    HashMap<Tile.TileType, Integer> rangeAmounts = BiomeType.getTilePercentages(this.biomeType);
    int currentAmount = 0;
    for (Tile.TileType type : rangeAmounts.keySet()) {
        int nextAmount = currentAmount + rangeAmounts.get(type);
        Range range = new Range(currentAmount, nextAmount);
 
@bazola int arrays is your friend
there is also a trick of division and multiplication you can use to make sure that it does sum up to 100
or a simply loop and sum and assert
 
8:01 PM
> Inspired by @skiwi2's recent [question on Code Review](http://codereview.stackexchange.com/q/82399/31562), it seems like Cardshifter could benefit from having a possibility to create mods in JavaScript.

Ideally, it should be possible to make more or less *all* the modding through JavaScript, not only defining the cards and loading them from Java (as is currently possible). The core mod itself and the cards should be able to keep in separate files, for Separation Of Concerns.
 
@SimonAndréForsberg what would it do if it didn't equal 100
 
@bazola throw new AssertionError("Crash boom bang!");
 
ah i see :)
 
> Agreed, it is a bug. But note that normally, you're not really expected to add and remove the same component on an entity. After removing a component, it would make more sense to add a new component.
 
8:11 PM
@Phrancis How much JavaScript would you say that you know?
 
Ummm... if I were to round it down to the closest whole number, it would amount to 0
 
@Phrancis If I add some way to make a mod using JavaScript, how much JavaScript would you then learn?
 
> I like your ideas overall so far.

@MGS1GreyFox I'd really like a fleshing out of your idea. Two rows is not directly supported in the game yet, but I also like the idea of a two-rows-battlefield game.

@Phrancis Could you elaborate on the dealer concept a bit more? Is this anything that should be shown in the GUI?

An important thing to decide in Poker and other such games is how long a game really is.
> On poker and such: Perhaps "betting" types of games are not the best, maybe a simple "first to X winning hands" would work OK so Poker/Blackjack might not be the best (plus there's already a million of them out there). I'll try to think of some more practical types of card games. The concept of a dealer, in a game where the dealer is an agent in the game (like Blackjack) should be shown on the screen. But, maybe we can shelf this for right now. It could perhaps be used in the future for a...
mod where players would team up against a "boss" which would be a similar concept, instead of playing against each other.
 
8:27 PM
@SimonAndréForsberg As much as I needed, provided you tell me what types of things I would need to learn (so as not to have to learn the entire language). @GreyFox would be in on the JavaScript as well I'm sure :)
(not saying learning the entire language would be bad, but I'd rather spend more time learning Java ;-)
 
lol
> Not so distant future
@Phrancis Javascript is really not that hard ;) If you keep it to the simple part
 
So I've heard!
 
Yay, I found the event I need to implement
[Power] GameState.DebugPrintPower() -     SHOW_ENTITY - Updating Entity=[id=57 cardId= type=INVALID zone=HAND zonePos=3 player=2] CardID=NEW1_023
[Power] GameState.DebugPrintPower() -         tag=HEALTH value=2
[Power] GameState.DebugPrintPower() -         tag=ATK value=3
[Power] GameState.DebugPrintPower() -         tag=COST value=2
[Power] GameState.DebugPrintPower() -         tag=ZONE value=PLAY
[Power] GameState.DebugPrintPower() -         tag=CARDTYPE value=MINION
[Power] GameState.DebugPrintPower() -         tag=RARITY value=COMMON
Though probably not today ;)
or maybe I should
It'll probably just take 5 minutes I'll show you the finished concept in an hour
aaand I see another thing I should push before
 
@Phrancis the idea was that I would provide the first mod or two, and then you could modify my original code, see what changes and how it changes, and make your own :)
 
Maybe it won't break anything else
 
8:40 PM
> A co-operative TCG? Now that's really an idea I'd like to see explored further...
 
@SimonAndréForsberg If you think that would be a good method, which is sounds designing a mod in JS is more approachable than in straight Java. I'd love to actually learn as you put it together and help if I could!
 
@SimonAndréForsberg You know what the best news is?
 
@skiwi World peace?
 
Nashorn will support ECMAScript 6 as soon as possible
ECMAScript 6 contains lambdas
 
8:44 PM
I'm back! I know minimal JavaScript as well @SimonAndréForsberg but I'm always wanting to learn.
 
One downside is that lambdas in JS are of the form i => i + 1
Confusion inbound!
 
@Duga wait for it...
 
@skiwi I'm not sure how many lambdas will be used though...
 
I think it's quite useful in JS
 
@Phrancis I think that the update is done? I hope I didn't break all of it.
 
8:45 PM
@Phrancis In JS you don't have to compile anything. So it could essentially be like "starting a game in Cardshifter, making a change to the JS file, start a new game in Cardshifter..."
 
@Phrancis I'm waiting...
 
@GreyFox Just click Commit and we'll find out :D
 
var values = [1, 2, 3];

values.forEach(function(value) {
    print(value);
}

//vs

values.forEach(value => print(value));
 
I did? :P
 
a minute ago
MGS1GreyFox pushed to cyborg-chronicles
@Duga is a bit slow
 
8:46 PM
Sweet, thanks @Marc-Andre
 
or the webhook wasn't working.
oh well
 
Happens to the best of us bots.
 
@Phrancis when is your last break?
 
12m
 
gotcha, I'll wait for you then.
 
8:49 PM
@GreyFox Now it should be easy enough to repeat for the other 5 factions :)
 
@SimonAndréForsberg This is quite nice:
oldResourceMapping.forEach((resource, value) -> ResourceRetriever.forResource(resource).resFor(logEntity).set(value));
oldAttributeMapping.forEach((attribute, value) -> AttributeRetriever.forAttribute(attribute).attrFor(logEntity).set(value));
 
@Phrancis Lol, sure implementation. But 5 more stories should be the interesting part, haha.
Interesting = Time consuming.
Semantics!
 
woot!
 
Nice!
 
there's still enough weird things happening ;)
 
8:57 PM
@skiwi Do you see your HearthMonitor being potentially reusable for Cardshifter?
 
@skiwi Thank you(?)
@Phrancis How would that be?
 
@skiwi Sorry in advance for asking this stupid question, but what is the purpose of HearthMonitor?
 
@SimonAndréForsberg Not sure, that's why I'm asking :)
 
@GreyFox I bet @skiwi has been asking himself the same thing.
 
9:00 PM
> Added ShowEntityCommand.
> Added missing resources.
 
@Phrancis Doubt that
 
> Added Stealth to the effects in the GUI.
 
Ok
 
> Removed non-existing resource, added missing resource.
 
@GreyFox So far... none, I do intend to show in app if you have lethal this turn (when it's live monitoring a game), and I also want it to be able to identify bad actions in certain turns
@SimonAndréForsberg I think so(?)
The attributes are still nice...
public enum HearthStoneAttribute implements ECSAttribute {
    ZONE, FACTION, CARDTYPE, RARITY, CLASS;
However the resources...
public enum HearthStoneResource implements ECSResource {
    ATK, HEALTH, CONTROLLER, ENTITY_ID, COST, CREATOR, ZONE_POSITION, CANT_PLAY, BATTLECRY,
    PREMIUM, DEATHRATTLE, TAUNT, DIVINE_SHIELD, CHARGE, TRIGGER_VISUAL, FORGETFUL, EXHAUSTED,
    AURA, SPELLPOWER, IGNORE_DAMAGE, IGNORE_DAMAGE_OFF, CANT_BE_TARGETED_BY_ABILITIES, CANT_BE_TARGETED_BY_HERO_POWERS,
    NUM_TURNS_IN_PLAY, JUST_PLAYED, NUM_ATTACKS_THIS_TURN, DAMAGE, FROZEN, SECRET, POWERED_UP, CARD_TARGET,
    ATTACHED, LAST_AFFECTED_BY, FREEZE, DISPLAYED_CREATOR, STEALTH, CANT_BE_ATTACKED,
 
9:02 PM
@skiwi gotcha, so it's sort of an assist tool to optimize your play?
Pretty sweet.
 
@GreyFox One day, it'll be
 
[skiwi2/HearthMonitor] build #28 for commit 7a039d97 on branch develop passed
 
Uh great, HS uses player and hero objects
 
9:20 PM
Do you even play HS anymore?
 
Haven't played in last weeks
Been playing more FFXIV
Though not today, been a while that I haven't logged in on a day
 
@skiwi Have you tried out the Golden Saucer yet?
 
@GreyFox Nope, it doesn't interesting me that much, though I'll still take a look at Triple Triad
 
@skiwi Gotcha. I thought the Chocobo Races, and Triple Triad looked nice. Still wish the Snowboarding game from VII was back in though, haha.
 
I didn't know you were a FFXIV player ;)
 
9:29 PM
I'm not, sadly. I got an invite to the open Beta, and played the crap out of it on PS4, and loved it. But I didn't have the funds at the time for another subscription. I've been following the patches since then and might jump back in soon. Are you a PC or PS4 player?
 
PC player
I've played when it got released (2.0) until about a month before 2.1, just picked it up again not a month ago on 2.5
 
Ah, gotcha. I can't find anyone on PS4 that plays, that's another things holding me back. I hate trying to build up a friends list in an MMO, especially when I'm late to the game, haha.
 
I got invited to a nice free company, also didn't have anyone playing anymore
 
That's sweet! I hope to get into it eventually, it's right up my alley, but I'm hoping they drop subscriptions eventually like every other MMO (besides WOW...)
Random @skiwi fact. This is your 1 year anniversary in Chat according to your profile, haha.
 
@GreyFox :o didn't know that :p
@GreyFox I doubt they'll do that honestly, player count is very high and all seems good
I like sub MMORPG's more as they provide way more content than f2p, in general
Though I'm glad The Elder Scrolls Online is going b2p + sub/b2p, as it was still interesting, but not interesting enough to sub for :P
 
9:38 PM
@skiwi That's fair. It does seem like once MMO's drop subs that's when a lot of Pay-to-win issues start popping up. I am going to pick up ESO Online. I love the world, and Tamriel in general. I saw a few beta gameplays for it, and I'm glad they dropped subs in the long run. I don't think they had the turnout that they were hoping for.
Plus bots ruined the economy like 3 times just in Beta, lol.
 
Less gaming, more coding ;)
2
 
I can't say I'm exactly happy about TESO, but it still gives cool moments
The bummer with their f2p is though that it isn't f2p at all in the long run
The base game (b2p) is patch 1.6
Then onwards you'll need to either buy every patch, or you can subscribe to have access to patches beyond 1.6
Buying every patch is cheaper than having sub forever of course, I imagine
TTGTB soon, though I still always sit in the living room with my parents
Tomorrow driving lesson again
Cyclists are really tricky to deal with, need to look very carefully
 
@skiwi Ugh, I didn't know about that. Is there any idea what a patch will cost? That seems like a messy way to do things, because if you don't buy you don't play. And the game is still going to cost $60. Good luck on the driving lesson!
 
@GreyFox I'd say the game is surely worth picking up for only up till 1.6
There's really looooads to do
No clue what it will post, I think I read they will release the new model mid March
post = cost
 
@skiwi Good to know. I will still probably pick it up, but if each patch costs much north of $5 then they might as well still have subs, depending on how fast they are rolling out the patches. I would assume monthly?
 
9:50 PM
I think it'll be at the same pace as now, not sure what it is, but definitely not monthly
 
Wow, found an interesting thing in the documentation...
•(special values)
◦now
◦true
◦false
◦maybe
◦null
◦NULL
◦me
◦pi
maybe is a special value??
 
@Phrancis Maybe it is O_O
 
[skiwi2/HearthMonitor] build #29 for commit 993c3752 on branch develop passed
 
10:06 PM
biomes at work:
 
@bazola that's really impressive!
 
@GreyFox thanks
 
10:22 PM
Wow this language reads weird.
    class Item {
       float weight;
    }

    Item box[10];

    // integer indices ( up to capacity ) are pre-instantiated.
    1.2 => box[1].weight;

    // instantiate element "lamp";
    new Item @=> box["lamp"];

    // access allowed to "lamp"
    2.0 => box["lamp"].weight;

    // access causes a NullPointerException
    2.0 => box["sweater"].weight;
 
10:34 PM
@bazola hmm... that is some interesting map generation. I really recommend you to use Perlin Noise though
 
@SimonAndréForsberg yeah I think you are right. It is working alright but it does not look especially polished
 
Ahhhhh this is possibly one of the coolest things about this ChucK audio programming... It's all about manipulating time!
    now + 5::second => time later;

    while( now < later )
    {
        <<< now >>>;
        1::second => now;
    }
 
11:03 PM
bbl
 
11:16 PM
@Phrancis what on earth does that do?
 
11:35 PM
Runs a loop for 5 seconds, 5 iterations of a second each
Looks like ChucK has a specific time data type that is very important
And it appears you can chain them, so say I wanted to make a 120bpm, 4/4 signature pattern
0.5::second => time beat;
4::beat => time measure;
8::measure => time verse;
5::verse => time song;
 
now I'm starting to see the connection to actual audio :)
 
And you can use those with oscillators, and all sorts of other cool stuff
I'll try and find a way to tinker with it. In the mean time, I was really curious about modding using JS. The game logic and UI still have to go through the Java server and client no?
 
@Phrancis UI logic, definitely. Not sure how that can be more easily moddable. That would be hard.
A lot of the game logic will still be Java
 
Guessing the JS would run server-side mostly?
 
11:51 PM
yes
using it on LibGDX is a no-no.
in JavaFX it could work, but what is Cardshifter without mobile platforms?
 
RELOAD!
[Cardshifter/Cardshifter] 1 opened issue. 4 issue comments.
[Cardshifter/cardshifter.github.io] 4 commits. 1 closed issue.
 
00:00 - 18:0018:00 - 00:00

« first day (206 days earlier)      last day (3353 days later) »