Forgot password?
 Join Now!

Quiz Cheat Sheet Questions & Answers

Eidolon Prayer System Overview of Eidolon's Wishes

Fish King Timer Getting Ready To Go!

Archeology Guide Start Digging Now!

View: 10659|Reply: 4

[Data] [In Development] Aura Kingdom Character Simulator

[Copy link]

55

Threads

95

Posts

2106

Credits

Administrator

Rank: 9Rank: 9Rank: 9

Credits
2106

Official Guildless Member

7-8-2015 12:58:27 | Show all posts |Reader
Aura Kingdom Character Simulator


Aura Kingdom Character Simulator Preview:
http://guildless.net/akcs/


Aura Kingdom Envoy's Path Simulator Preview:
http://guildless.net/envoy/
Changelog:
8/25/2015: Added Envoy's Path, Thanks to Arrandale great works on the path API

Phrase Two, gathering information
Code Sample for Character's Base Stats
  1. var baseStatsArray = [
  2.   { //level 0
  3.     "DMG" : "0",
  4.     "CRIT" : "0",
  5.     "SPD" : "0",
  6.     "HP" : "0",
  7.     "DEF" : "0",
  8.     "EVA" : "0"
  9.   },
  10.   { //level 1
  11.     "DMG" : "58",
  12.     "CRIT" : "4",
  13.     "SPD" : "4",
  14.     "HP" : "351",
  15.     "DEF" : "25",
  16.     "EVA" : "8"
  17.   }
  18.    //so on
  19. ];
Copy the Code




I have few choices on the data storaging options: xml, json, or localStorage
JSON
Pro:
  • Simple syntax, which results in less "markup" overhead compared to XML.
  • Easy to use with JavaScript as the markup is a subset of JS object literal notation and has the same basic data types as JavaScript.

Con:
  • Simple syntax, only a handful of different data types are supported.

XML
Pro:
  • Generalized markup; it is possible to create "dialects" for any kind of purpose
  • XML Schema for datatype, structure validation. Makes it also possible to create new datatypes
  • XSLT for transformation into different output formats
  • XPath/XQuery for extracting information (which makes getting information in deeply nested structures much easier then with JSON)
  • Built in support for namespaces

Con:
  • Relatively wordy compared to JSON (results in more data for the same amount of information).

localStorage
Pro:
  • Very easy to use and memorize the api.
  • Synchronous API - no need for writing a callback just to get your data
  • Supported on more browsers

Con:
  • Objects must be serialized (would be nice if they did this for you!), potential performance impact of JSON serialization / deserialization.
  • Not nearly as powerful as SQL, which can sort, search and aggregate data much easier.




Item Stats Formatting on the file
Let me know if I missed something..

Item Type Reference:
  1. 0 = Dual Blades
  2. 1 = Sword and Shield
  3. 2 = Great Axe
  4. 3 = Staff
  5. 4 = Dual Pistol
  6. 5 = Cannon
  7. 6 = Grimoire
  8. 7 = Harp
  9. 8 = Katar
  10. 9 = Battle Bow
  11. 10 = Tachi
  12. 11 = Scythe
  13. 12= Headgear
  14. 13 = Armor
  15. 14 = Waist
  16. 15 = Gauntlet
  17. 16 = Boots
  18. 17 = Mantle
  19. 18 = Necklace
  20. 19 = Ring
  21. 20 = Trophy
  22. 21 = Gaia Emblem
  23. 22 = Costume Weapon
  24. 23 = Costume Hat
  25. 24 = Face Accesorry
  26. 25 = Costume Armor
  27. 26 = Ornament
  28. 27 = Fishing Rod
  29. 28 = Fishing Hat
  30. 29 = Fishing Vest
  31. 30 = Fishing Gloves
  32. 31 = Fishing Boots
  33. 32 = Secret Stone
Copy the Code
  1.         "icon": "", //item image
  2.         "type": "", //item type see item type reference for detail
  3.         "name": "", //item name
  4.         "level": "", //item level
  5.         "grade": "", //item grade, "0=white" "1=blue" "2=orange" "3=yellow" "4=purple"
  6.         //Primary stats points on an item
  7.         "baseDMG": "",
  8.         "baseCRIT": "",
  9.         "baseSPD": "",
  10.         "baseHP": "",
  11.         "baseDEF": "",
  12.         "baseEVA": "",
  13.         //Secondery stats points on an item
  14.         "2ndDMG": "",
  15.         "2ndCRIT": "",
  16.         "2ndSPD": "",
  17.         "2ndHP": "",
  18.         "2ndDEF": "",
  19.         "2ndEVA": "",
  20.         //Max % increase in stats
  21.         "maxDMG": "",
  22.         "maxCRIT": "",
  23.         "maxSPD": "",
  24.         "maxHP": "",
  25.         "maxDEF": "",
  26.         "maxEVA": "",
  27.         "maxCDMG": "",
  28.         "maxMSPD": "",
  29.         //Primary Weapon Damage Bonus
  30.         "pwdb": "",
  31.         //Primary Weapon Crit Rate
  32.         "pwcr": "",
  33.         //Primary Weapon Crit Damage
  34.         "pwcd": "",
  35.         //General Damage Reduction
  36.         "gdr": "",
  37.         //General Crit Rate Reduction
  38.         "gcrr": "",
  39.         //General Crit Damage reduction
  40.         "gcdr": "",
  41.         //Damage Bonus Against Bosses
  42.         "dbab": "",
  43.         //Crit Rate bonus against Bosses
  44.         "crbab": "",
  45.         //Crit Damage bonus against Bosses
  46.         "cdbab": "",
  47.         //Boss Damage Reduction
  48.         "bdr": "",
  49.         //Boss Crit Rate reduction
  50.         "bcrr": "",
  51.         //Boss Crit Damage reduction
  52.         "bcdr": "",
  53.         //Damage bonus against Elites
  54.         "dbae": "",
  55.         //Crit Rate bonus against Elites
  56.         "crbae": "",
  57.         //Crit Damage bonus against Elites
  58.         "cdbae": "",
  59.         //Elite Damage reduction
  60.         "edr": "",
  61.         //Elite Crit Rate reduction
  62.         "ecrr": "",
  63.         //Elite Crit Damage reduction
  64.         "ecdr": "",
  65.         //Damage bonus against Players
  66.         "dbap": "",
  67.         //Crit Rate bonus against Players
  68.         "crbap": "",
  69.         //Crit Damage bonus against Players
  70.         "cdbap": "",
  71.         //Player Damage reduction
  72.         "pdr": "",
  73.         //Player Crit Rate reduction
  74.         "pcrr": "",
  75.         //Player Crit Damage reduction
  76.         "pcdr": "",
  77.         //Damage bonus to Storm targets
  78.         "dbtst": "",
  79.         //Damage bonus to Flame targets
  80.         "dbtft": "",
  81.         //Damage bonus to Lightning targets
  82.         "dbtlt": "",
  83.         //Damage bonus to Ice targets
  84.         "dbtit": "",
  85.         //Damage bonus to Holy targets
  86.         "dbtht": "",
  87.         //Damage bonus to Dark targets
  88.         "dbtdt": "",
  89.         //Bonus to Healing Potency
  90.         "bthp": "",
  91.         //Bonus to Received Healing
  92.         "btrh": "",
  93.         //Damage dealt absorbed as HP
  94.         "ddaah": "",
  95.         //Damage taken reflected back
  96.         "dtrb": "",
  97.         //EXP bonus from defeating monsters
  98.         "ebfdm": "",
  99.         //Drop Rate bonus
  100.         "drb": "",
  101.         //% of DEF added to dmg
  102.         "def2dmg": "",
  103.         //% of damage add to class with class weapon
  104.         "maxDMG4Class": "",
  105.         //item effect
  106.         "effect": "",
  107.         //set bonus effect
  108.         "setEffect": "",
  109.         //set category
  110.         "set": "",
Copy the Code




Phrase One, HTML + CSS markup


This post contains more resources

You have to Login for download or view attachment(s). No Account? Register

x
Reply

Use magic Report

2

Threads

10

Posts

829

Credits

Senior Member

Rank: 4

Credits
829
7-15-2015 10:08:03 | Show all posts
Edited by Arrandale at 7-15-2015 10:24

baseStatsArray: http://pastebin.com/SFTH40BE
Reply Support Not support

Use magic Report

2

Threads

10

Posts

829

Credits

Senior Member

Rank: 4

Credits
829
7-21-2015 05:43:15 | Show all posts
Edited by Arrandale at 8-15-2015 11:58

♦ ~~~~~~ EnvoyPath JS Class API for AKCS (Draft) ~~~~~~ ♦

This is still a work-in-progress. I wish I could have written more. However, I am inundated with university-related stuff so x-x .
Anyway, here is the structure of the EnvoyPath JS Class.

Predefined AKclass-specific objects [In progress]
  1. var wizardEnvoyPath = {

  2.     effects: [

  3.                 // (0,0) -> 0
  4.                 null,

  5.                 // (0,1) -> 1
  6.                 null,

  7.                 // (0,2) -> 2
  8.                 {
  9.                         name: 'Harmonic Series',
  10.                         description: 'Learn the skill "Harmonic Series". Draw .....'
  11.                 },
  12.                
  13.                 ...
  14.                 ...
  15.                 ...
  16.                
  17.                 // (2,6) -> 24
  18.                 {
  19.                         name: 'Muscle Up 2',
  20.                         description: 'HP +2%',
  21.                         HP: 2
  22.                 },
  23.                
  24.                 ...
  25.                 ...
  26.                 ...

  27.                 ]

  28.     dmgStatsIndex: [47, 48, 49, 57, 58, 67],
  29.     critStatsIndex: [50, 59, 60, 61, 69],
  30.     ...
  31.     ...


  32. };
Copy the Code
As shown is the object representing the wizard's envoy path. There will be many more, each representing a different AKclass. These predefined objects are meant to be assigned to the primaryEnvoyPath member of the EnvoyPath class by the EnvoyPath constructor.

EnvoyPath class definition/constructor
  1. /* EnvoyPath class definition/constructor */
  2. function EnvoyPath(charClass) {

  3.         this.primaryClass = charClass;
  4.         /*
  5.                 Only the center element. This element can't be unselected. 40 denotes the linear index of the center element's position.
  6.         */
  7.         this.selected = [40];
  8.         switch(charClass) {
  9.         
  10.                 case "Guardian":
  11.                
  12.                         console.log("Guardian selected");
  13.                         this.primaryEnvoyPath = guardianEnvoyPath;
  14.                         break;
  15.                         
  16.                 case "Ravager":
  17.                
  18.                         console.log("Ravager selected");
  19.                         this.primaryEnvoyPath = ravagerEnvoyPath;
  20.                         break;
  21.                         
  22.                 case "Duelist":
  23.                
  24.                         console.log("Duelist selected");
  25.                         this.primaryEnvoyPath = duelistEnvoyPath;
  26.                         break;
  27.                         
  28.                 case "Gunslinger":
  29.                
  30.                         console.log("Gunslinger selected");
  31.                         this.primaryEnvoyPath = gunslingerEnvoyPath;
  32.                         break;
  33.                         
  34.                 case "Grenadier":
  35.                
  36.                         console.log("Grenadier selected");
  37.                         this.primaryEnvoyPath = grenadierEnvoyPath;
  38.                         break;
  39.                         
  40.                 case "Bard":
  41.                
  42.                         console.log("Bard selected");
  43.                         this.primaryEnvoyPath = bardEnvoyPath;
  44.                         bard
  45.                         break;
  46.                         
  47.                 case "Wizard":
  48.                
  49.                         console.log("Wizard selected");
  50.                         this.primaryEnvoyPath = wizardEnvoyPath;
  51.                         break;
  52.                         
  53.                 case "Sorcerer":
  54.                
  55.                         console.log("Sorcerer selected");
  56.                         this.primaryEnvoyPath = sorcererEnvoyPath;
  57.                         break;
  58.                         
  59.                 case "Brawler":
  60.                
  61.                         console.log("Brawler selected");
  62.                         this.primaryEnvoyPath = brawlerEnvoyPath;
  63.                         break;
  64.                         
  65.                 case "Ranger":
  66.                
  67.                         console.log("Ranger selected");
  68.                         this.primaryEnvoyPath = rangerEnvoyPath;
  69.                         break;
  70.                         
  71.                 case "Ronin":
  72.                
  73.                         console.log("Ronin selected");
  74.                         this.primaryEnvoyPath = roninEnvoyPath;
  75.                         break;
  76.                         
  77.                 case "Necromancer":
  78.                
  79.                         console.log("Necromancer selected");
  80.                         this.primaryEnvoyPath = necromancerEnvoyPath;
  81.                         break;
  82.                         
  83.                 default:
  84.                
  85.         }

  86. }
Copy the Code

EnvoyPath getters/setters [In progress]
  1. /* Get methods */
  2. EnvoyPath.prototype.getTotalLearnedEnvoyDMG = function() {

  3. };

  4. EnvoyPath.prototype.getTotalLearnedEnvoyCRIT = function() {

  5. };

  6. EnvoyPath.prototype.getTotalLearnedEnvoySPD = function() {

  7. };

  8. EnvoyPath.prototype.getTotalLearnedEnvoyHP = function() {

  9. };

  10. EnvoyPath.prototype.getTotalLearnedEnvoyDEF = function() {

  11. };

  12. EnvoyPath.prototype.getTotalLearnedEnvoyEVA = function() {

  13. };

  14. EnvoyPath.prototype.getTotalLearnedEnvoyPriDMG = function() {
  15.         
  16. };

  17. EnvoyPath.prototype.getTotalLearnedEnvoyPriCRIT = function() {
  18.         
  19. };

  20. EnvoyPath.prototype.getTotalLearnedEnvoyPriCRITDMG = function() {
  21.         
  22. };

  23. EnvoyPath.prototype.getTotalLearnedEnvoyMovSPD = function() {
  24.                
  25. };

  26. /* Convenience methods for updating the envoy path instance
  27. object */
Copy the Code


Notes
Common envoy nodes shared across all AKclasses:
  1. 1. Battle Tactics (DMG+%)
  2. 2. Weak Point Analysis (CRIT+%)
  3. 3. Attack Swiftness (SPD+%)
  4. 4. Muscle Up (HP+%)
  5. 5. Thick Skin (DEF+%)
  6. 6. Bob and Weave (EVA+%)
  7. 7. Fleet Footed (Move SPD+%)
  8. 8. Greediness (Loot Drop Rate+%)
  9. 9. Quick Study (EXP Gained+%)
Copy the Code


NOTE: I will add more stuff later.
Reply Support Not support

Use magic Report

2

Threads

10

Posts

829

Credits

Senior Member

Rank: 4

Credits
829
8-14-2015 07:22:23 | Show all posts
Edited by Arrandale at 8-23-2015 00:21

EnvoyPath JS Class API for AKCS


1. Introduction

The EnvoyPath JS Class API is written specifically so that Star could call methods contained in the API to manipulate or get information from the envoy path without knowing how the envoy path representation is changed internally. This is important as the stats as shown in the main character window are dependent on the stat-affecting cells of the envoy path. Essentially, this JS Class API serves to be an interface between Star’s work and my part of the project.

While there are existing envoy path simulators, most do not consider how the envoy path in the game actually behaves. For example, we can’t deselect cells which would break connectivity between neighbouring cells and the center cell. The figure below illustrates an example:



As such, this API implements code to perform such connectivity checks using Breadth-First-Search (BFS) algorithm. Envoy cells are represented using undirected graph, of which BFS is applied against.



2. Class API

2.1 Constructor

  1. EnvoyPath(charClass, charLvl)
Copy the Code

ParametersDescription
charClassMust be one of the following:
  • Guardian
  • Ravager
  • Duelist
  • Gunslinger
  • Grenadier
  • Bard
  • Wizard
  • Sorcerer
  • Brawler
  • Ranger
  • Ronin
  • Necromancer
charLvlCharacter Level


2.2 Properties of EnvoyPath Constructor

Property Name
Description
primaryClassAKClass string. e.g. Guardian, Ravager etc.
envoyPointsNumber of available envoy points
selectedAssociative array of selected cells on the envoy path
enabledArray of indices of enabled envoy cells
primaryEnvoyPathTableELReference to the DOM table object containing the envoy path


2.3 Methods of EnvoyPath Constructor

Method
Parameters
Description
getTotalLearnedEnvoyDMG()-Return contribution of DMG% from envoy path
getTotalLearnedEnvoyCRIT()-Return contribution of CRIT% from envoy path
getTotalLearnedEnvoySPD()-Return contribution of SPD% from envoy path
getTotalLearnedEnvoyHP()-Return contribution of HP% from envoy path
getTotalLearnedEnvoyDEF()-Return contribution of DEF% from envoy path
getTotalLearnedEnvoyEVA()-Return contribution of EVA% from envoy path
getTotalLearnedEnvoyHeal()-Return contribution of HEAL% from envoy path
getTotalLearnedEnvoyACC()-Return contribution of ACC% from envoy path
getTotalLearnedEnvoyMoveSPD()-Return contribution of MoveSPD% from envoy path
getTotalLearnedEnvoyEXP()-Return contribution of EXP Bonus% from envoy path
getTotalLearnedEnvoyLoot()-Return contribution of Loot Rate Bonus% from envoy path
getTotalLearnedEnvoyDEFToDMG()-Return % of DEF that could be added to DMG
getTotalLearnedEnvoyHPToDMG()-Return % of HP that could be added to DMG
getTotalLearnedEnvoyDEFToCRIT()-Return % of DEF that could be added to CRIT
getTotalLearnedEnvoyDMGToHP()-Return % of DMG that could be added to HP
getTotalLearnedEnvoySPDToHP()-Return % of SPD that could be added to HP
getTotalLearnedEnvoyCRITToHP()-Return % of CRIT that could be added to HP
getTotalLearnedEnvoyDMGToBosses()-Return contribution of DMG to Bosses% from envoy path
getTotalLearnedEnvoyDMGToElites()-Return contribution of DMG to Elites% from envoy path
getTotalLearnedEnvoyDMGReductionFromBosses()-Return contribution of DMG Reduction from Bosses% from envoy path
getTotalLearnedEnvoyDMGReduction()-Return contribution of General DMG Reduction% from envoy path
getTotalLearnedEnvoyDMGTakenReflected()-Return contribution of DMG Taken Reflected% from envoy path
getTotalLearnedEnvoyCRITDMGReduction()-Return contribution of CRITDMGReduction% from envoy path
getTotalLearnedEnvoyRecvHealing()-Return contribution of Bonus Received Healing% from envoy path
getTotalLearnedEnvoyDMGAbsorbedHP()-Return contribution of DMG Dealt Absorbed as HP% from envoy path
getTotalLearnedEnvoyPriDMG()-Return contribution of primary weapon DMG% from envoy path
getTotalLearnedEnvoyPriCRIT()-Return contribution of primary weapon CRIT% from envoy path
getTotalLearnedEnvoyPriCRITDMG()-Return contribution of primary weapon CRITDMG% from envoy path
resetEnvoy()-Reset envoy path


3. Usage

Include EnvoyPath.css and EnvoyPath.css in the head section of the HTML document.

  1. ...
  2. <head>
  3. <meta charset="UTF-8">
  4. ...
  5. ...
  6. <link rel="stylesheet" type="text/css" href="css/EnvoyPath.css">
  7. <script src="js/EnvoyPath.js"></script>
  8. ...
  9. ...
  10. </head>
  11. ...
Copy the Code

Under the body section, create a container to encapsulate the primaryEnvoyPathTableEL DOM table object. For example:

  1. ...
  2. <body>
  3. <div id="envoyPathContainer">
  4. </div>
  5. <script>
  6. var envoyPath = new EnvoyPath("Wizard", 75);
  7. var containerEL = document.getElementById("envoyPathContainer");
  8. containerEL.appendChild(envoyPath.primaryEnvoyPathTableEL);
  9. </script>
  10. </body>
  11. ...
Copy the Code

If needed, change the value of envoyPathImgPath in EnvoyPath.js so that it points to a new location.
  1. ...
  2. var envoyPathImgPath = 'img/EnvoyPath/';
  3. ...
Copy the Code

4. Code


5. Issues

The use of bind() means this would not work in IE < 9.

6. To-do

  • Tooltip when hovering over envoy cells(?) [Done]
  • Complete envoy details of other AKclasses. [Done]


7. Status

  • Ready to be used as part of AKCS.
Reply Support Not support

Use magic Report

55

Threads

95

Posts

2106

Credits

Administrator

Rank: 9Rank: 9Rank: 9

Credits
2106

Official Guildless Member

 Author| 8-15-2015 07:21:26 | Show all posts
CSS for tooltip
  1. #itemMenuPanel {
  2.     background: rgba(30, 30, 30, 0.95);
  3.     background: -webkit-gradient(linear, left top, left bottom, from(rgba(30, 30, 30, 0.95)), to(rgba(5, 5, 5, 0.95)));
  4.     background: -moz-linear-gradient(top, rgba(30, 30, 30, 0.95), rgba(5, 5, 5, 0.95));
  5.     border: 1px solid rgba(5, 5, 5, 0.5);
  6.     border-radius: 5px;
  7.     box-shadow: inset 0px 1px rgba(255, 255, 255, 0.1), 0px 1px 5px rgba(0, 0, 0, 0.6);
  8.     padding: 13px;
  9.     color: #e1e1e1;
  10.     text-align: left;
  11.     text-shadow: 0px -1px #000;
  12.     float: right;
  13.     position: relative;
  14.     width: 270px;
  15.     margin-bottom: 20px;
  16.     font-size: 12px;
  17. }
  18. .edit-button,
  19. .close-button {
  20.     color: #777;
  21.     font: 14px/100% arial, sans-serif;
  22.     position: absolute;
  23.     right: 2px;
  24.     top: 2px;
  25.     text-decoration: none;
  26.     text-shadow: 0 1px 0 #000;
  27. }
  28. .edit-button {
  29.     right: 20px;
  30.     top: 2px;
  31. }
  32. .edit-button:hover,
  33. .close-button:hover {
  34.     color: #AFAFAF;
  35. }
  36. .close-button:after {
  37.     content: '✖';
  38. }
  39. .edit-button:after {
  40.     content: '≣';
  41. }
  42. .tooltipicon{
  43.     position: absolute;
  44. }
  45. .itemPart,
  46. .itemName {
  47.     width: 221px;
  48.     text-align: left;
  49.     float: right;
  50.     font-size: 16px;
  51.     padding-left: 5px;
  52. }
  53. .itemPart {
  54.     padding-top: 5px;
  55.     font-size: 12px;
  56.     color: #e1e1e1;
  57. }
Copy the Code
Reply Support Not support

Use magic Report

You have to log in before you can reply Login | Join Now!

Points Rules

8-22-2017 09:54 GMT-5 , Processed in 0.086000 second(s), 24 queries .

© 2001-2016 Powered by Discuz!

Quick Reply To Top Return to the list