Hell world!

As it was planned I finished the core modeling today! Revised some details about the Pools which were dumb and added a visitor class (Analyzer) which will “”test”” champions for particular informations.

There is a ResultFile.txt which is a output file with the result of a test (baseStat) which will use the TestNormality object to check if it can analyze it the way I planned to do.

Okay let’s slow down a bit. Here a simple explanation of all this, the way it will work.

First of all, we need data to create our champions inside the database. The data will be in textfile which I will write by hand once and update it with each patch. I will have a special class to read it and construct those champions with the read data. Every constructed champions will be add to the ChampionDataBase which will serve has a Model Library of every available champion in the game with the offcial and non official stats ( IE Range, AS, AS per Lvl ..) to the tool. The said stats are divided in 3 different types : Level Dependent (LD), Non Level Dependent(NLD) and Pools. The LD stats have a common function which level those up or down in one single call. Those stats are specific for each champion and predetermined (Will be in the source textfile). The NLD stats are all starting at 0 except for Range and Movement speed which are also in the source textfile. All of these are either affected by skills, runes, masteries or items. The pools has I call them are the different type of ressources used to monitor Life, Mana, Energy, Ferocity and Fury. Plus it’s designed in a way that it can be a ”empty pool” for champion who don’t use any other those ressources such as Garren or Katarina. The said pools needed to be able to ”regenerate”, ”decreased over time” and have a maximum value to be generic enough to respect those ressources’ logic.

Second of all, it was important to make a difference between Summoned Champion and Non Summoned Champion because a model has no access to items, masteries, runes or auras and it was needed to be easy to construct a champion. Let’s say non summoned champion are not suppose to be customizable. Plus, constructing Summoned Champion is harder has I need the masteries implemented, the runes, the items and the auras and over this those data are useless for the first test I need to run.

The first test which is called BaseStat is simply put the test that will generate the Rank/Rating textfile for every champion and every stat of these champions compared with the other champions. But, to be allowed to rank those the way I want it to be (with a normal distribution plot) I need to verify that those data set (every champions armor value, every champion attack speed value , etc..) follow a normal distribution. We can test for normality with some tests that have been developed by mathematicians. The test I will be using will be implemented into the TestNormality class.

Little extras :

Each champion will have an ID which will be a number because it’s easier than using strings to do so.

Once a champion is Summoned, the champion model will be modified directly by the items, runes, masteries and auras. That is why I have added the ReloadChampionModel ( uint ID), since changing it’s inventory would mean the champion model to be corrupted. I don’t think it the best idea to do it that way, but atm I haven’t found a better way to do it.

and the Good News!!



I have run some tests on champions’ data. It is verified that Base Values for Life and Mana (for mana champions) follow a normal distribution a every level (1 to 18). Which is great because it means I will be able to create a rating on those stats. It seems that my hypothesis about the normality of every stats in the game is probably right. My hypo. was based on the fact that every stats has a ”mean mass” and some ”extreme” values which is mostly the idea behind a normal distribution.

I also found that the Health per level and Mana per Level are not following a normal distribution which is not bad since I would not have given ratins on such a useless data. Who cares about how much you gain per level, it the total amount that counts!.

Here is the UML which is missing the auras but since i’m not working on those yet it is not that important.



Here is the MatLab result of my normality test :

Line 1 is Heatlh at lvl 1

Line 2 is Health Per Level

Line 3 is Health at lvl 18

Line 4 is Mana at lvl 1

Line 5 is Mana Per Level

0 Means it follow a normal distribution and 1 means otherwise!