Dragon Story Wiki
No edit summary
No edit summary
(41 intermediate revisions by 5 users not shown)
Line 1: Line 1:
  +
[[File:Breeding Den.png|center]]
<br/>
 
  +
 
'''''Having issues using the calculator?'''''
 
'''''Having issues using the calculator?'''''
   
Line 6: 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. 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.
+
'''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.
 
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.
<big>'''***UPDATE*** As of August 6, 2013, the Breeding Calculator code has been significantly changed to make way for some new rules. You may clear your cache manually to get the changes immediately or wait for your browser to do it automatically (this usually happens within 24-72 hours but may take longer depending on your browser).'''</big>
 
   
 
== Breeding Outcomes ==
 
== Breeding Outcomes ==
Line 18: Line 19:
 
''* 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.''
 
''* 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 26: Line 27:
 
''* 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.''
 
''* 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.''
   
  +
<div id="breeddragons-pair-calculator"></div>
<verbatim>BreedingPairCalculator</verbatim>
 
 
<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 46: 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
Line 53: Line 53:
 
titan: {
 
titan: {
 
name: "Titan",
 
name: "Titan",
colors: ["red", "purple"],
+
types: ["red", "purple"],
  +
environments: ["dragon_islands"],
 
incubation: "32_hours_32",
 
incubation: "32_hours_32",
 
rarity: 2
 
rarity: 2
Line 62: Line 63:
 
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,
Line 70: Line 72:
 
nightelf: {
 
nightelf: {
 
name: "Night Elf",
 
name: "Night Elf",
colors: ["black"],
+
types: ["black"],
  +
environments: ["dragon_islands"],
 
incubation: "14_hours_14",
 
incubation: "14_hours_14",
 
rarity: 3,
 
rarity: 3,
parents: [[["colors", ["purple"]], ["colors", ["black"]]]]
+
parents: [[["types", ["purple"]], ["types", ["black"]]]]
 
},
 
},
   
 
passion: {
 
passion: {
 
name: "Passion",
 
name: "Passion",
colors: ["valentine"],
+
types: ["valentine"],
  +
environments: ["dragon_islands"],
 
incubation: "16_hours_16",
 
incubation: "16_hours_16",
 
rarity: 3,
 
rarity: 3,
Line 88: Line 92:
 
infinity: {
 
infinity: {
 
name: "Infinity",
 
name: "Infinity",
colors: ["diamond"],
+
types: ["diamond"],
  +
environments: ["dragon_islands"],
 
incubation: "40_hours_40",
 
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 104: Line 109:
 
id: {
 
id: {
 
name: "",
 
name: "",
colors: [],
+
types: [],
  +
environments: [],
 
incubation: "",
 
incubation: "",
 
rarity:
 
rarity:
Line 117: 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 173: Line 183:
   
 
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.
 
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 196: 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 202: 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*
 
 
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: {
 
name: "Infinity",
 
colors: ["diamond"],
 
incubation: "2_days_40",
 
rarity: 4,
 
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:
 
 
specificoffspring: ["fire", "forest", "angel"]
 
   
 
***
 
***
Line 241: Line 243:
 
ruby: {
 
ruby: {
 
name: "Ruby",
 
name: "Ruby",
colors: ["red"],
+
types: ["red"],
 
incubation: "16_hours_16",
 
incubation: "16_hours_16",
 
rarity: 2,
 
rarity: 2,
Line 247: Line 249:
 
}
 
}
   
  +
***
  +
  +
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."
  +
};
  +
  +
  +
***
  +
  +
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.
  +
  +
--- complex_type_components: ---
  +
  +
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:
  +
  +
complex_type_components =
  +
{
  +
purple: ["red", "blue"],
  +
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:
   

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.