 So welcome to the open document editor's dev room. We can start with the first presentation by Imakat. It's going to be a funny one. So we start on the right note. Okay, thank you. I'm glad to know that there's someone welcoming you, so I don't have to welcome you myself. Okay, and before we begin, anyone still playing Pokemon Go now? Oh, that's cool. Okay, I'll share your stories. Hopefully I can make it sure. And one of my friends, she went to interview for a new job, and the interviewer asked her a question, saying, this position requires a persistent character. And can you show your persistency? And then she turned off her cell phone and said, look, I'm still playing Pokemon Go. Yes, I am persistent, and you are persistent too. And, okay, let me introduce myself. I'm from Taiwan, an open source office, liberal office community. And I'm a member of the Apache National PMC. Also, I'm a member of the Women's Women's Info in Taiwan. And besides that, well, I'm a game player for almost three decades. Yeah, that reveals my age. I'm from Amistos to Windows 95, 98, and now I'm playing Linux Steam. And PC game, I play PC game at MAD, M-U-D. Have anyone heard of MAD? MAD? Yeah, wow, that's cool. Okay. Did I know you? Okay, cool. We are mobile games, and my favorite game genre is always RPG, role-playing games. And, well, okay. All in all, it started as a spreadsheet. You know, a spreadsheet is actually a very convenient space to store the information because you don't have to worry about the metadata, the data size, data type, or the procedure, anything. So I use a spreadsheet to store all kinds of data information. For example, the general account, including the account of my this trouble. And also the student scores. I use those to record student scores or the attendees list. And this is also true when it comes to games. Since I play a game a lot, I also create a lot of spreadsheet to store game data. For example, the Ultima 7. Anyone heard of this? Anyone heard of this? Cool. Okay. It also reviews my age again. And part of the 7th tile, the lost items of the main character, I use it to recall what item is lost and what is replaced and the crew, how to find it. And to come to a closer age, plants, this is versus zombies. I use it to recall the plants, the calls, and their genre. And also this is a Chinese game, Sanctuary Battle. I used to recall all the heroes I got. And this tree is amazing. Yeah, it's just amazing. Now it goes for Pokemon Go. In Pokemon Go, every Pokemon has its combat power. I believe many of you have already know. And we often compare Pokemon by their combat power. For example, you see the Charmander is 500 and the Squirtle is 400. It's apparently stronger. And some species are just stronger than the others. For example, the Krabiaba is just stronger than the male Nidoran below. And even within the same species, their CP may still be different. So they are still different from one another. So Pokemon of the same species share the same set of base stats. For example, you can see that for Pikachu, its base attack is 112, and the defense is 101, and stamina is 70. And the slow ball below is much stronger. Its attack is 177, defense 194, and stamina is 190. In addition to these base stats, they are still also individual values. And individual values are added to the base stats There are three values range from 0 to 15. And also there's level. Pokemon has their level, and this level is indicated by R, the R below the CP. So you can see that. And there are these two ball peaks. The one above is of level 20, and the one below is of level 25. Yeah, and the R is longer. So level can be advanced by power up, and each power up advances the level by half. So in order to get the strongest Pokemon, we first choose the strong species with high base stats. And for Pokemon of that species, we pick the Pokemon with the highest individual values, and then we power up to a maximum to advance its level. So now the question is, how do we get lower individual values? Actually individual values are hidden. The Pokemon company won't let us to know. If you pick into the individual values, you'll be banned from the game. So, but we are hackers, you know. We can still calculate it from hints and clues. Actually there are several websites that calculate Pokemon individuals for you. For example, for this squeaky puff, you can see that its CP is 472. And it's, well, it's not quite clear. Its HP is 162. And to power it takes 4,000 star dust and three candies. So let's see. If we got a squeaky puff, and 472, 162, and 4,000. And yes, we haven't powered it up yet. And then calculate. We've got eight possible combinations. Okay. Then we further limit the result. We further limit the result by the team leader's appraisal. For me, I'm in a red team. The team leader's, yes? Yeah, red team. Yeah. Boo. Okay, team leader. The team leader says, overall Magikarp has a strong Pokemon. You should be proud. And then it says, its HP is stronger than the strongest feature. And I'm just impressed with the attack. And it's got excellent stats. How exciting. So let's go back to here. Team leader appraisal first through the team leader and strong Pokemon. My HP is the strongest feature. It got impressed as its attack. And it got excellent stats. How exciting. Well, it limits to one value. It's 25, 14, 8, 14. Okay. With this online calculator, actually, I created, actually, I actually created, sorry. With this online, sorry. Oh, sorry. Yeah. With this online calculator, I actually created a more advanced spreadsheet to score. Oh, sorry. I actually created a spreadsheet to recall all my strongest Pokemon. Yeah. That's crazy thing I did. I always did something like this. Yeah. And you know, I always do things that's useless. I like to hack useless things. Okay. Now, back to my slides. And it also tells you how strong it's possible. It could possibly be, for example, the degree, degree, so before, but we see, we saw it required one, it can go to 1,000 and 800 CP and require 174,000 start-ups and 190 candies to power up. So, then I have a next question. My laptop has a following IV. It's level, it's 20, 13, 12, 11. And to go to Pokemon level 39, it takes 200,000 start-ups and 220,000 into CP, 2080, 800. But I only got 29 candies. So, should I power it up? And a laptop is so hard to catch, so should I power it up? And how strong it would be? And to get the answer, I have to be able to calculate CP myself. Actually, for popular game like this, someone already has already hacked it. So, I just do the Google and found this CP formula. Yes. And you can see that attack is base attack plus the IV attack and times the CP. And defense is base defense plus IV defense times CP and stamina. And also, CP is attack times square root of defense plus square root of stamina and divided by 10. Okay? First, the first part of the base stats. Base stats can also be found on the internet. Someone already found it. So, also, I copied it and put it on the table. Secondly, the CPM-CP multiplier. CPI multiplier is actually a list of constants increased with levels. They can be found on the internet, too. So, half levels, they are calculated at real time using this formula. So, for example, my battle-free base is 167, defense 151 and 120. That is 14, 159. So, I apply this formula, I get a CP of 100 and 1039. And that's exactly what I got. Okay, return to my lab class problem. The amount of stats and candy to power up can also be found on the internet, too. So, from level 20, I found that I can only get to level 25. And to level 25, to level 25, I apply the formula, I found the CPM of level 25. I found that I can get a CP, password CP to 2077. Okay, that's where I got now. Okay, it seems worth it. It's quite strong. So, using this formula, I create a more advanced spreadsheet and to tell all the possibilities of my Pokemons and how it could be. Okay? Then, with the ability to calculate the CP, actually, the calculator is just one step away. You know, it's only simply brute force. The pseudocall is quite simple. I loop through each possible level and each stamina, each attack, and each defense. And if the calculator CP is a CP I got, and then boom, I got an answer. And the result, it runs 79 times 15, times 15 times 15 to 260,000 times. That's a huge number and you won't stop. But we have ways to refine it. See, if we know the star dust table, if we know the star dust, actually, we can limit the number of possible levels from only four levels. And for newly co-planned Pokemons, the level will always be the whole number. So, it will limit to two levels. And HP is actually the stamina as a whole number. So, apply this formula. I can only also limit the IV stamina to one or two values. So, the number of runs is reduced to 900 times and it's the last model. Now, third refinement with team leader, Appraisal. For a better team, the first Appraisal is total stats. If this amazes me, it gets more than 36. If it is a strong Pokemon, it goes 30 to 36. And if it is a decent Pokemon, it goes 23 to 29, but if it's not great in battle, it's less than 23. The second Appraisal is its best stats. And HP is its strongest future and as God is impressed as its attack, whatever is listed, they are equally its best stats. So, and the third Appraisal is maximum stats value. If I'm brought away by its stats, it's more, it's 15. The maximum is 15. I've got a certain stats. It's maximum 13 or 14. If they indicate in battle, I'll get the job done is between A and 12. You won't point to greatness in battle. It's less than A. So, with this, let's see. The GGBARF we just got here and with the CP of 472 and HP of 162 and Stardust 4000 and for me, my current level is 30. And it's team leader, so I got strong Pokemon. It's HP strongest future, impressed with its attack and excellent house stats, house sighting. Okay, and I got the result. Okay, this is done. Oh, but I see I still have 5 minutes, so... So, let's show a short story. Sorry. One morning, in November, when I woke up, I found my Araratus gets much stronger than I expected. Then I remember, it's weird. Actually, not only Araratus, everything, everyone is changed his power. So, I went to the Pokemon fan page and found this. Yeah, the Pokemon. We have just made adjustment to a CP and that's terrible. And it's lucky that I haven't published this calculator yet. And I quickly searched the internet and found someone has already found the table. Yeah, and I immediately applied it. And that's the first story. Second story, the other day when I woke up, when I'm working, I had something that I never seen. So, I went to the Pokemon fan page again. Say, oh, new Pokemon added. Togepi and Pichu hatching from eggs. And that's terrifying me because this time I already published it. So, I spent all my coins to hatch these Pokemon and to get their data. And for those I haven't had, I even asked all my friends if they had already hatched it in order to get their data. Yeah. So, the lessons I learned from here. If you are creating some game hiking tool and you don't have commercial support, you have better not publish it. Because it's really a nightmare, you know, if the game change. If the game change, you have to update it immediately. And the second lesson I learned. For strong-poked species like Dragonite, best stats take the largest part of the CP. You see, the total is 263 plus 15. Defense 201 plus 15 and Stemline 182 dot 15 dot 11 plus 11. Actually, Dragonite is just stronger, whatever its IV is. And the second inform factor is always its level. And for IV, we are calculating it doesn't really matters. Okay. Thank you very much. Any question? Yes. Oh, yes, I forgot it. Just, actually, you can get from here. I put it on GitHub. That's another topic I'll talk about this afternoon. I put it on GitHub. And also, currently, I only put it... I still not put it on... Sorry. Yeah. I still not put it on the LibreOffice extension yet. But I checked and just it runs smoothly on LibreOffice, too. Yeah. Maybe I'll just upload it later. Yes. Any question? No question? And I hope you enjoy this. Thank you. And your next. I'm just checking. Everybody's got everything. Don't leave! We still have sessions. Don't leave this room. We still have sessions.