 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'm persistent, and you are persistent too. And, okay, some introduction, 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 Human Infants 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, MUD, have anyone heard of MUD? MUD? 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. 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 precision, anything. So I use spreadsheet to store all kinds of data information. For example, the journal account, including the account of 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 games 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? Wow, that's 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 record what item is lost and what is replaced and the crew, how to find it. And to come to a closer age, playing spaces versus zombies, I use it to record the planes, the course, and their genre. And also this is a Chinese game, Sanctuary Battle. I used to record 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 compact power. I believe many of you have already know. And we often compare Pokemon by their compact 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 Snowball below is much stronger. Its attack is 177, defense 194 and stamina is 190. And in addition to these base stats, they are still also individual values. And individual values are added to the base stats and range from 0 to... 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 pigs. 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. 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 Gigipuff, you can see that its CP is 472. Well, it's not quite clear. Its HP is 162. And to power-up, it takes 4,000 Stardusts and three candies. So let's see. If we got up Gigipuff and 472, 162 and 4,000. Yes, we haven't powered it up yet. And then calculate. We've got eight possible combinations. Then we further limit the result. We further limit the result. Team leader's appraisal. For me, I'm in a red team. The team leader? Yes? Yeah, red team. Boo. Okay, team leader. The team leader says overall Magikarp has a strong Pokemon. You should be proud. And then he says its HP is stronger than the strongest feature. And I'm just impressed. It's attacked. 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. 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 calculator, I actually created a more advanced spreadsheet to score. Oh, sorry. I actually created a spreadsheet to score 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, it also tell you how strong it's possible. It could possibly be, for example, the trigger, trigger, so before we see, we saw you require one. It can go to 1,000 and 800 CP and require 174,000 star dots and 190 candies to power up. So then I have a next question. My Lapras has a following IV. It's level, it's 20, 13, 12, 11. And to go to Pokemon level 39, it takes 200,000 star dots and 220,000 into CP, 2080, 800. But I only got 29 candies. So should I power it up? And Lapras 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. And 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 CPM. And defense is base defense plus IV defense times CPM and stamina. And also CP is attack times square root of defense and square root of stamina and divided by 10. OK. First, the first part of the base stats. Base stats, it can also be found on internet, someone already found it. So also I copied it and put, I copied this table. Secondly, the CPM, CP multiplier. CPM is actually a list of constants increased with levels. They can be found on internet too. And for high levels, they are calculated at real time using this formula. So for example, my battery base is 167, 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. OK. Return to my lab plus problem. The amount of stats and candy to power up can also be found on internet too. So from level 20, I found that I can only got to level 25. And to level 25, apply the film, I found the CPM of level 25. I found that I can get a possible CP to 2077. OK. That's where I got now. OK. 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. OK. OK. Then with the ability to calculate the CP actually application, 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 is CP, it's CP I got. And then boom, I got an answer. And the result it was 79 times 15 times 15 times 15 times 15 to 260,000 times. That's huge number and you won't stop. But we have ways to refine it. See, if we know the start us table, if we know the start us, actually we can limit the number of possible level from only four levels. And for newly coped pokemons, the level will always be 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 smaller. Now, first refinement with team leader appraisal. For a better team, the first appraisal is total stats. If it amazes me, it gets up 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 is less than 23. The second appraisal is its best stats. And HP is strongly future and as God is impressed as its attack. Whatever is listed, they are equally its best stats. And the third appraisal is maximum stats value. If I'm brought away by its stats, it's 15. The maximum is 15. God has seven stats. It must be 13 or 14. If they indicate in battle, I'll get the job done. It's between A and 12. It won't point to greatest 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, 4,000. And for me, my current level is 30. And it's team leader, so I got strong Pokemon. It's AP, strongly future, impressed with its attack. And excellent house stats, house sighting. Okay, then I got the result. Okay, this is done. Oh, but I see I still have five minutes. 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. Oh, new Pokemon added. There are Tokai P 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 have 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. You know, if the game change, you have to update it immediately. And the second lesson I learned. For strong pox species like Dragonite, best stats take the largest part of the CP. You see, the tag is 263 plus 15. Defends 201 plus 15. And Stemline is 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 check 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 here are links. Thanks. I'm just checking. Everybody's got everything. Don't leave. We still have sessions. Don't leave this room. We still have sessions.