Dragon Story Wiki
No edit summary
No edit summary
(57 intermediate revisions by 6 users not shown)
Line 1: Line 1:
  +
[[File:Breeding Den.png|center]]
<br />
 
<big>'''ATTENTION:''' As of June 21, 2013, the Breeding Calculator code and data have been significantly altered. Your cache must be cleared to get the updated code, or else the calculator may not work properly. You can clear your cache manually or you can wait until your browser automatically clears it for you after a day. Thank you.</big>
 
   
 
'''''Having issues using the calculator?'''''
 
'''''Having issues using the calculator?'''''
Line 8: Line 7:
 
'''''If you are still experiencing issues, you can try [http://dragon.sjau.ch/ Hyper ch's external breeding tool].'''''
 
'''''If you are still experiencing issues, you can try [http://dragon.sjau.ch/ Hyper ch's external breeding tool].'''''
   
'''DISCLAIMER:''' The Breeding Calculator is a player-updated tool. While we try our best to keep it up-to-date, TeamLava makes constant changes to the breeding rules, which can sometimes be implemented quickly, but other times they require a complete restructure of the code. Please DO NOT take the Breeding Calculator results as gospel; if something happens in the game that doesn't match the results shown by the tool, please report it. We appreciate your patience and cooperation. Thank you.
+
'''DISCLAIMER:''' The Breeding Calculator is a player-updated tool. While we try our best to keep it up-to-date, Storm8 makes constant changes to the breeding rules, which can sometimes be implemented quickly, but other times they require a complete restructure of the code. If something happens in the game that doesn't match the results shown by the tool and the unexpected behavior continues AFTER you have '''cleared your cache''', please report it.
  +
  +
Because things change from time to time, remember to '''clear your cache to get the updated code''' <u>before</u> you attempt to report an error. We appreciate your patience and cooperation. Thank you.
  +
  +
'''UPDATE:''' At the moment, breedable dragons that return for only a week will not show up in the Calculator. If the Calculator does not show any possible offspring for your incubation time, look in your [[Market]] under the "Featured" tab, or the [[Codex]], to find returning dragons.
   
 
== Breeding Outcomes ==
 
== Breeding Outcomes ==
Line 14: Line 17:
 
See what happens when you breed two dragons here.
 
See what happens when you breed two dragons here.
   
''* Dragons with incubation times of longer than 24 hours will inaccurately display in the game rounded up to the next whole day when you first breed them (Ex: 25 hours gets rounded to 2 days). To determine how many hours the incubation will take, check the initial gold cost.''
+
''* For players without the new timer system, dragons with incubation times of longer than 24 hours will inaccurately show a time rounded up to the next whole day when you first breed them (Ex: 25 hours gets rounded to 2 days). To determine how many hours the incubation will take, check the initial gold cost.''
   
  +
<div id="breeddragons-calculator"></div>
<verbatim>BreedingCalculator</verbatim>
 
   
 
== Breeding Possibilities ==
 
== Breeding Possibilities ==
Line 22: Line 25:
 
See which dragons you can use to breed your desired dragon here.
 
See which dragons you can use to breed your desired dragon here.
   
''* Dragon level, order, and species do not affect the probability of getting a rare dragon. To breed a desired dragon, you simply need the correct parents and enough patience.''
+
''* Dragon level, order, and species do not affect the probability of getting a rare dragon. To breed a desired dragon, you simply need the correct parents and enough patience while we confirm the rules and update the tool.''
 
<verbatim>BreedingPairCalculator</verbatim>
 
   
  +
<div id="breeddragons-pair-calculator"></div>
<verbatim>BreedingCalculatorData</verbatim>
 
   
  +
<!--INSTRUCTIONS TO MODIFY DATA FOR THE BREEDING CALCULATOR
<!--Instructions to include new dragons:
 
   
 
*** Note: You must be logged in with admin rights to edit most of the pages in question. MediaWiki pages automatically place this requirement, although you can view the pages without any admin access.
 
*** Note: You must be logged in with admin rights to edit most of the pages in question. MediaWiki pages automatically place this requirement, although you can view the pages without any admin access.
Line 44: Line 45:
 
air: {
 
air: {
 
name: "Air",
 
name: "Air",
colors: ["yellow"],
+
types: ["yellow"],
  +
environments: ["dragon_islands"],
 
incubation: "2_hours_2",
 
incubation: "2_hours_2",
rarity: 1,
+
rarity: 1
expired: false
 
 
},
 
},
   
 
titan: {
 
titan: {
 
name: "Titan",
 
name: "Titan",
colors: ["red", "purple"],
+
types: ["red", "purple"],
  +
environments: ["dragon_islands"],
incubation: "2_days_32",
+
incubation: "32_hours_32",
rarity: 2,
 
expired: false
+
rarity: 2
 
},
 
},
   
 
--- Examples of dragons that involve special exceptions ---
 
--- Examples of dragons that involve special exceptions ---
 
 
emerald: {
 
name: "Emerald",
 
colors: ["green"],
 
incubation: "8_hours_8",
 
rarity: 2,
 
expired: false,
 
crafted: true
 
},
 
   
 
clockwork: {
 
clockwork: {
 
name: "Clockwork",
 
name: "Clockwork",
colors: ["yellow", "red"],
+
types: ["yellow", "red"],
 
environments: ["dragon_islands"],
 
incubation: "13_hours_13",
 
incubation: "13_hours_13",
 
rarity: 3,
 
rarity: 3,
expired: false,
+
offspringeligibility: "goal"
goal: true
 
 
},
 
},
  +
 
nightelf: {
 
name: "Night Elf",
 
types: ["black"],
 
environments: ["dragon_islands"],
 
incubation: "14_hours_14",
 
rarity: 3,
 
parents: [[["types", ["purple"]], ["types", ["black"]]]]
 
},
   
 
passion: {
 
passion: {
 
name: "Passion",
 
name: "Passion",
colors: ["heart"],
+
types: ["valentine"],
  +
environments: ["dragon_islands"],
 
incubation: "16_hours_16",
 
incubation: "16_hours_16",
 
rarity: 3,
 
rarity: 3,
 
parents: [[["id", "leftheart"], ["id", "rightheart"]]],
expired: true,
 
  +
parenteligibility: "purevalentine",
parents: [[["id", "leftheart"], ["id", "rightheart"]]]
 
  +
offspringeligibility: "expired"
 
},
 
},
 
 
nightelf: {
 
name: "Night Elf",
 
colors: ["black"],
 
incubation: "14_hours_14",
 
rarity: 3,
 
expired: false,
 
parents: [[["colors", ["purple"]], ["colors", ["black"]]]]
 
},
 
   
 
infinity: {
 
infinity: {
 
name: "Infinity",
 
name: "Infinity",
colors: ["diamond"],
+
types: ["diamond"],
incubation: "2_days_40",
+
environments: ["dragon_islands"],
 
incubation: "40_hours_40",
 
rarity: 4,
 
rarity: 4,
 
expired: false,
 
expired: false,
parents: [[["id", "wizard"], ["colors", ["green", "yellow"]]],
+
parents: [[["id", "wizard"], ["types", ["green", "yellow"]]],
[["colors", ["diamond"]], ["colors", ["diamond"]]]],
+
[["types", ["diamond"]], ["types", ["diamond"]]]],
 
specificoffspring: ["fire"]
 
specificoffspring: ["fire"]
 
},
 
},
Line 116: Line 109:
 
id: {
 
id: {
 
name: "",
 
name: "",
colors: [],
+
types: [],
 
environments: [],
 
incubation: "",
 
incubation: "",
rarity: ,
+
rarity:
expired:
 
 
}
 
}
   
Line 130: Line 123:
 
The name must have the correct capitalization and punctuation. For example, "IceCream" or "ice cream" are incorrect and should be written as "Ice Cream".
 
The name must have the correct capitalization and punctuation. For example, "IceCream" or "ice cream" are incorrect and should be written as "Ice Cream".
   
--- colors: ---
+
--- types: ---
   
This is a list of the dragon's actual colors. Include each color in quotation marks ("") and include a comma following those quotes if the color is not the last one in the list. Include each color in the order that it should be displayed for that dragon. For example, the Eagle Dragon's entry should say colors: ["yellow", "red"] while the Firestorm Dragon's entry should say colors: ["red", "yellow"].
+
This is a list of the dragon's actual types. Include each type in quotation marks ("") and include a comma following those quotes if the type is not the last one in the list. Include each type in the order that it should be displayed for that dragon. For example, the Eagle Dragon's entry should say types: ["yellow", "red"] while the Firestorm Dragon's entry should say types: ["red", "yellow"].
  +
 
--- environments: ---
  +
  +
This is a list of the environments in which the dragon lives. An environment is the island on which a dragon is available. Include each environment in quotation marks ("") and include a comma following those quotes if the environment is not the last one in the list. For example, the Abominable Dragon's entry should say environments: ["arctic_isles"], while the Fruitful Dragon's entry should say environments: ["dragon_islands"]. A dragon that lives on both islands should say environments: ["dragon_islands", "arctic_isles"].
   
 
--- incubation: ---
 
--- incubation: ---
Line 152: Line 149:
 
Super Rare = 3
 
Super Rare = 3
 
Ultra Rare = 4
 
Ultra Rare = 4
 
--- expired: ---
 
 
This should say either true or false (no quotation marks) depending on whether the dragon is expired or not. For example, if the Witch Dragon is available from October 11 to 15 and it is currently October 12, it should say false. If it's September 2, though, it should say true. For any non-limited dragon, it should always say false because they do not expire.
 
   
 
--- other potential properties (include only if needed) ---
 
--- other potential properties (include only if needed) ---
Line 161: Line 154:
 
Some special dragons may require extra property data. You should only include these if necessary.
 
Some special dragons may require extra property data. You should only include these if necessary.
   
*crafted*
+
*level*
   
  +
If a dragon's level requirement does not match with the standard expected level, set the level variable to the appropriate number, like so:
If a dragon is attainable via crafting, add the following line:
 
   
  +
level: 30
crafted: true
 
   
  +
*parenteligibility*
*goal*
 
   
  +
If a dragon cannot be used as a parent, set the parenteligibility variable to the matching type. There is a list inside the parent_eligibility_explanations variable, which is located in the Breeding Calculator data file.
If a dragon is attainable as the result of completing a goal, add the following line:
 
   
  +
For example, if the matching type in the parent_eligibility_explanations variable for a particular dragon is "goldtype", this is how the property would look:
goal: true
 
   
  +
parenteligibility: "goldtype"
*purchaseonly*
 
   
  +
Remember, you do not need to include the parenteligibility variable if a dragon can be used as a parent.
If a dragon can only be obtained via purchase at the Market (ex: Treasure, Stainglass), add the following line:
 
   
  +
Additionally, do not be afraid to add new types to the parent_eligibility_explanations variable as needed. It is as simple as adding the type and matching explanation to the data, then using that type in the parenteligibility variable for applicable dragons.
purchaseonly: true
 
  +
  +
*offspringeligibility*
  +
  +
If a dragon cannot be acquired as offspring, set the offspringeligibility variable to the matching type. There is a list inside the offspring_eligibility_explanations variable, which is located in the Breeding Calculator data file.
  +
  +
For example, if the matching type in the parent_eligibility_explanations variable for a particular dragon is "tournament", this is how the property would look:
  +
  +
offspringeligibility: "tournament"
  +
  +
Remember, you do not need to include the offspringeligibility variable of a dragon can be acquired as offspring.
  +
  +
Additionally, do not be afraid to add new types to the offspring_eligibility_explanations variable as needed. It is as simple as adding the type and matching explanation to the data, then using that type in the offspringeligibility variable for applicable dragons.
  +
  +
*enablingtypes*
  +
  +
Some single type dragons like the Olympus will show up in a breeding combination if there are certain types present, but the enabling types are not necessarily required in order to breed the dragon, so it's not the same as a red and a blue parent for Magic Dragon, for example. (In the Olympus Dragon's case, the Olympus type is the only enabling type and the Olympus Dragon is received from a special game event, so in effect the Olympus type would be required for this special case - but that's a result of the situation, not a specific limitation of the enablingtypes variable.) You would use the enablingtypes variable to list any non-required types that would cause a single type dragon to appear in a breeding combination. (Remember, only list enabling types if there is a type that will cause the offspring to appear without the regular ways of getting the dragon.)
  +
  +
An example of a dragon that can appear if either red or green are in the pool would look like:
  +
  +
enablingtypes: ["red", "green"]
   
 
*parents*
 
*parents*
Line 201: Line 214:
 
parents: [[[], []], [[], []]] (two empty rules, each holding an empty pair)
 
parents: [[[], []], [[], []]] (two empty rules, each holding an empty pair)
   
Now, each requirement in a pair will have a type of "id" or "colors". A requirement will be represented in a list of two elements with the type on the left side and the specifics on the right.
+
Now, each requirement in a pair will have a type of "id" or "types". A requirement will be represented in a list of two elements with the type on the left side and the specifics on the right.
   
 
The id requirement contains a type "id" on the left and a dragon's id in quotes on the right, like so:
 
The id requirement contains a type "id" on the left and a dragon's id in quotes on the right, like so:
Line 207: Line 220:
 
["id", "icecream"]
 
["id", "icecream"]
   
The colors requirement contains a type "colors" on the left and a list of colors in brackets, separated by commas if there are multiple colors, on the right, like so:
+
The types requirement contains a type "types" on the left and a list of types in brackets, separated by commas if there are multiple types, on the right, like so:
   
["colors", ["red"]] (only one color: red)
+
["types", ["red"]] (only one type: red)
   
["colors", ["yellow","blue","green"]] (three colors: yellow, blue, green)
+
["types", ["yellow","blue","green"]] (three types: yellow, blue, green)
   
Now, let's say that one parent requirement must have the id icecream and the other parent must have the colors yellow, blue, and green. This is how you would put it into the parents field:
+
Now, let's say that one parent requirement must have the id icecream and the other parent must have the types yellow, blue, and green. This is how you would put it into the parents field:
   
parents: [[["id", "icecream"], ["colors", ["yellow", "blue", "green"]]]] (one rule with a pair containing an id requirement and a colors requirement)
+
parents: [[["id", "icecream"], ["types", ["yellow", "blue", "green"]]]] (one rule with a pair containing an id requirement and a types requirement)
   
Let's say that this fictional dragon has another set of rules aside from the one that we just added, and it can also be bred if each parent contributes the color red. This is how the parents field should look with both rules included (new line and spaces are optional and only done for clarity's sake):
+
Let's say that this fictional dragon has another set of rules aside from the one that we just added, and it can also be bred if each parent contributes the type red. This is how the parents field should look with both rules included (new line and spaces are optional and only done for clarity's sake):
   
parents: [[["id", "icecream"], ["colors", ["yellow", "blue", "green"]]],
+
parents: [[["id", "icecream"], ["types", ["yellow", "blue", "green"]]],
[["colors", ["red"]], ["colors", ["red"]]]]
+
[["types", ["red"]], ["types", ["red"]]]]
   
In general, just make sure that every list has its own set of brackets [], every element is properly separated by a comma, every rule contains a pair of parent requirements, and every parent requirement contains a list with the type on the left and the specific requirement on the right (an id for the "id" type and a list of colors for the "colors" type).
+
In general, just make sure that every list has its own set of brackets [], every element is properly separated by a comma, every rule contains a pair of parent requirements, and every parent requirement contains a list with the type on the left and the specific requirement on the right (an id for the "id" type and a list of types for the "types" type).
   
  +
***
*specificoffspring*
 
   
 
Don't forget the comma at the end of every line except the last one! Ex:
If using a particular dragon as a parent will always result in specific dragons that don't follow the normal rules, add a list of the dragons in question, separated by commas, with the specificoffspring property. Remember to use the dragon's id, not its name ("icecream" rather than "Ice Cream"). Ex:
 
   
infinity: {
+
ruby: {
name: "Infinity",
+
name: "Ruby",
colors: ["diamond"],
+
types: ["red"],
incubation: "2_days_40",
+
incubation: "16_hours_16",
rarity: 4,
+
rarity: 2,
  +
offspringeligibility: "crafted"
expired: false,
 
specificoffspring: ["fire"]
 
 
}
 
}
   
  +
***
If, for example, the Infinity dragon would randomly produce Fire, Forest, or Angel dragons only (which disregards normal rules), then the property would look like this:
 
  +
  +
Certain special dragons may be assigned as default offspring to particular combinations. This data is located, not in the breeds variable, but in the default_offspring_explanations variable located somewhere below the list of breed data.
  +
  +
Any dragon with special default behavior should be included in this default_offspring_explanations variable using the same id as the id used in the breeds variable.
  +
  +
For example, if there is only one such dragon (id of iceage), this is what the variable will look like:
  +
  +
default_offspring_explanations = {
  +
iceage: "<b>Note:</b> This dragon is a default result of any pairings in the Arctic Isles that will not " +
  +
"result in a different Arctic Isles dragon."
  +
};
  +
  +
In the past, the Infinity and Passion dragons would produce the Fire Dragon as default offspring. This is what the list might look like if that were still the case (note that each id is separated by commas at the end of the line):
  +
  +
default_offspring_explanations = {
  +
iceage: "<b>Note:</b> This dragon is a default result of any pairings in the Arctic Isles that will not result in a different Arctic Isles dragon.",
  +
fire: "<b>Note:</b> This dragon is a default result of any pairings involving the Infinity or Passion dragons as parents."
  +
};
   
specificoffspring: ["fire", "forest", "angel"]
 
   
 
***
 
***
   
  +
It is also possible to add new types to the data that exhibit previously-implemented behaviors. Several variables will need to be updated for this. They are located somewhere below the long list of breed data.
Don't forget the comma at the end of every line except the last one! Ex:
 
   
  +
--- complex_type_components: ---
ruby: {
 
  +
name: "Ruby",
 
  +
This variable contains a list of types that are made up of components. For example, if there are only three types - purple, which has components of red and blue; black, which has components of blue and purple; and zodiac, which has components of yellow and black - the complex_type_components would look like the following:
colors: ["red"],
 
  +
incubation: "16_hours_16",
 
  +
complex_type_components =
rarity: 2,
 
  +
{
expired: false,
 
 
purple: ["red", "blue"],
crafted: true
 
  +
black: ["blue", "purple"],
  +
zodiac: ["yellow", "black"]
  +
};
  +
  +
--- complex_types: ---
  +
  +
This variable contains a list of types that have an implemented behavior. This is a description of the current behaviors:
  +
  +
*minor*
  +
  +
A type that splits into its component types.
  +
  +
*recessive*
  +
  +
A type that does not contribute to the breeding pool but can emerge from certain combinations in breeding.
  +
  +
*counted*
  +
  +
A type that is created by the combination of a given amount of colors.
  +
  +
*unmixable*
  +
  +
A type that should never contribute to or surface from a breeding pool of any kind.
  +
  +
This is an example of what the complex_types variable can look like:
  +
  +
complex_types =
  +
{
  +
pink: "minor",
  +
black: "minor",
  +
valentine: "recessive",
  +
diamond: "counted",
  +
gold: "unmixable"
  +
};
  +
  +
--- type_count_requirements: ---
  +
  +
This variable is only relevant to any types with the "counted" behavior. It lists the type along with the number of distinct types required for this type to surface. This is an example of what it should look like:
  +
  +
type_count_requirements =
  +
{
  +
diamond: 4
  +
};
  +
  +
--- level_requirements ---
  +
  +
This variable holds the default values of level availability for a type. It lists the type along with the default level for that type. This is an example of what it should look like:
  +
  +
level_requirements =
  +
{
 
red: 1,
  +
green: 1,
 
yellow: 2,
  +
blue: 7
 
}
 
}
   
  +
--- all_types ---
  +
  +
This is a list of all types. It should include every single type, sorted by the priority with which types should be displayed (red comes before blue, gold and diamond go last, etc.) The order is somewhat arbitrary, so use an order that looks best. Here is what the list can look like:
  +
  +
all_types = ["valentine", "red", "green", "yellow", "blue", "purple", "white", "pink", "black", "mythic", "cosmic", "stone", "fairytale", "dino", "rainbow", "gemstone", "zodiac", "iceage", "abominable", "blizzard", "tropic", "royal", "gold", "diamond"];
  +
  +
--- prismatic_types ---
  +
  +
This list should include every type that can be a result of a pure Diamond pairing. No other types should be included in this list. Here is what the list can look like:
  +
  +
prismatic_types = ["red", "green", "yellow", "blue", "purple", "white", "pink", "black", "mythic", "cosmic", "stone", "fairytale", "dino", "rainbow", "gemstone", "zodiac", "tropic", "royal", "diamond"];
  +
  +
--- arctic_types ---
  +
  +
This list should include types that are native to the Arctic Isles. Example:
  +
  +
arctic_types = ["iceage", "abominable", "blizzard"];
  +
  +
--- type_image_url ---
  +
  +
This is a list of the type images as they will be displayed in the breeding results. The name of the type should be included along with the correct link to the image. Example:
  +
  +
type_image_url = {
  +
red: "http://images.wikia.com/dragon-story/images/9/9a/Red30px.png",
  +
green: "http://images.wikia.com/dragon-story/images/3/3d/Green30px.png",
  +
yellow: "http://images.wikia.com/dragon-story/images/7/70/Yellow30px.png",
  +
blue: "http://images.wikia.com/dragon-story/images/f/f1/Blue30px.png",
  +
purple: "http://images.wikia.com/dragon-story/images/3/3c/Purple30px.png"
  +
};
  +
  +
***
 
3) Once you have entered all the new data, publish your changes. Go to the [[Breeding Calculator]] page. When you are there, edit the link by adding ?action=purge, so that the link looks like this:
 
3) Once you have entered all the new data, publish your changes. Go to the [[Breeding Calculator]] page. When you are there, edit the link by adding ?action=purge, so that the link looks like this:
   
Line 269: Line 383:
   
 
-->
 
-->
[[Category:Browse]]
+
[[Category:Gameplay]]

Revision as of 18:04, 18 October 2019

Breeding Den

Having issues using the calculator?

  • Check that Javascript is enabled for the browser that you are using to visit this site.
  • Make sure that you are viewing the page using the full site option. Wikia's mobile skin disables a lot of HTML and javascript features, which will make a lot of the site unusable on your iDevice. You may find the full site option by scrolling all the way to the bottom of the page and then clicking the link in the wikia menu.
  • Confirm that you're up-to-date with your device's operating system. Ignoring updates for too long can cause all sorts of compatibility issues. It is your responsibility to keep your device updated!
  • Try downloading a different browser. Some browsers are unstable or have oddities that do not work well with the code.
  • Try clearing your cache. The method for clearing your cache depends upon your browser (Firefox, Chrome, Safari, etc.). If you're unsure about how to clear your cache, do a quick online search for how to clear the cache of your particular browser. Your browsers will correctly clear your cache for you after a certain amount of time (usually a day).

If you are still experiencing issues, you can try Hyper ch's external breeding tool.

DISCLAIMER: The Breeding Calculator is a player-updated tool. While we try our best to keep it up-to-date, Storm8 makes constant changes to the breeding rules, which can sometimes be implemented quickly, but other times they require a complete restructure of the code. If something happens in the game that doesn't match the results shown by the tool and the unexpected behavior continues AFTER you have cleared your cache, please report it.

Because things change from time to time, remember to clear your cache to get the updated code before you attempt to report an error. We appreciate your patience and cooperation. Thank you.

UPDATE: At the moment, breedable dragons that return for only a week will not show up in the Calculator. If the Calculator does not show any possible offspring for your incubation time, look in your Market under the "Featured" tab, or the Codex, to find returning dragons.

Breeding Outcomes

See what happens when you breed two dragons here.

* For players without the new timer system, dragons with incubation times of longer than 24 hours will inaccurately show a time rounded up to the next whole day when you first breed them (Ex: 25 hours gets rounded to 2 days). To determine how many hours the incubation will take, check the initial gold cost.

Breeding Possibilities

See which dragons you can use to breed your desired dragon here.

* Dragon level, order, and species do not affect the probability of getting a rare dragon. To breed a desired dragon, you simply need the correct parents and enough patience while we confirm the rules and update the tool.