mirror of
https://gitlab.com/Deukhoofd/BattleSim.git
synced 2026-10-31 14:01:40 +00:00
Added framework for random team generation, added admin buttons to generate teams, changed authorization to use different forums depending on test or production
This commit is contained in:
1 parent
03e1e7d440
commit
cd9ea965bb
10 files changed
+5620
-5282
No files matched your search
@@ -23,9 +23,13 @@ class @TeambuilderView extends Backbone.View
|
|||||||
'click .add_pokemon': 'addNewPokemonEvent'
|
'click .add_pokemon': 'addNewPokemonEvent'
|
||||||
'click .save_team': 'saveTeam'
|
'click .save_team': 'saveTeam'
|
||||||
|
|
||||||
|
'click .random-team-admin a': 'randomTeamTierChange'
|
||||||
|
'click .getrandomteams': 'getRandomTeams'
|
||||||
|
|
||||||
initialize: (attributes) =>
|
initialize: (attributes) =>
|
||||||
@selectedPokemon = 0
|
@selectedPokemon = 0
|
||||||
@selectedTeam = null
|
@selectedTeam = null
|
||||||
|
@randomformatadmin = window.DEFAULT_FORMAT
|
||||||
|
|
||||||
@render()
|
@render()
|
||||||
|
|
||||||
@@ -159,17 +163,18 @@ class @TeambuilderView extends Backbone.View
|
|||||||
format = $link.data('format')
|
format = $link.data('format')
|
||||||
team = @getSelectedTeam()
|
team = @getSelectedTeam()
|
||||||
realformat = window.PokeBattle.conditions.Formats_[format]
|
realformat = window.PokeBattle.conditions.Formats_[format]
|
||||||
console.log(team.hasPBV())
|
|
||||||
console.log(team.hasTier())
|
|
||||||
if realformat.tierBased and team.hasPBV()
|
|
||||||
console.log('this')
|
|
||||||
else if !realformat.tierBased and team.hasTier()
|
|
||||||
console.log('that')
|
|
||||||
if format != team.get('generation')
|
if format != team.get('generation')
|
||||||
team.set('generation', format)
|
team.set('generation', format)
|
||||||
@renderTeam()
|
@renderTeam()
|
||||||
@dirty() # renderTeam() removes dirty, so call it again
|
@dirty() # renderTeam() removes dirty, so call it again
|
||||||
|
|
||||||
|
randomTeamTierChange: (e) =>
|
||||||
|
@$("#currentselectedrandomadminformat")[0].innerHTML = e.currentTarget.text
|
||||||
|
@randomformatadmin = e.currentTarget.dataset.format
|
||||||
|
getRandomTeams: (e) =>
|
||||||
|
number = parseInt(e.currentTarget.textContent, 10)
|
||||||
|
PokeBattle.primus.send('getRandomTeamsAdmin', @randomformatadmin, number)
|
||||||
|
|
||||||
setSelectedPokemonIndex: (index) =>
|
setSelectedPokemonIndex: (index) =>
|
||||||
pokemon = @getSelectedTeam().at(index)
|
pokemon = @getSelectedTeam().at(index)
|
||||||
@selectedPokemon = index
|
@selectedPokemon = index
|
||||||
|
|||||||
@@ -11,5 +11,16 @@ if window.PokeBattle.username == "Deukhoofd" || window.PokeBattle.username == "t
|
|||||||
h5 Admin Commands
|
h5 Admin Commands
|
||||||
.button.get-teams Get all teams
|
.button.get-teams Get all teams
|
||||||
br
|
br
|
||||||
| Get teams from user
|
| Get Random teams
|
||||||
input(type=text)
|
- var allformats = window.PokeBattle.conditions.Formats()
|
||||||
|
.dropdown.random-team-admin
|
||||||
|
.current-format-random-admin.button.dropdown-toggle(data-toggle="dropdown")
|
||||||
|
a#currentselectedrandomadminformat(href="#", data-format="#{allformats[window.DEFAULT_FORMAT].name}") #{allformats[window.DEFAULT_FORMAT].humanName}
|
||||||
|
ul.dropdown-menu(role='menu')
|
||||||
|
for format in allformats
|
||||||
|
li
|
||||||
|
a(href="#", data-format="#{format.name}") #{format.humanName}
|
||||||
|
.button.getrandomteams 1
|
||||||
|
.button.getrandomteams 5
|
||||||
|
.button.getrandomteams 10
|
||||||
|
.button.getrandomteams 25
|
||||||
+17
-8
@@ -6364,6 +6364,8 @@
|
|||||||
this.setSelectedTeam = __bind(this.setSelectedTeam, this);
|
this.setSelectedTeam = __bind(this.setSelectedTeam, this);
|
||||||
this.getSelectedPokemon = __bind(this.getSelectedPokemon, this);
|
this.getSelectedPokemon = __bind(this.getSelectedPokemon, this);
|
||||||
this.setSelectedPokemonIndex = __bind(this.setSelectedPokemonIndex, this);
|
this.setSelectedPokemonIndex = __bind(this.setSelectedPokemonIndex, this);
|
||||||
|
this.getRandomTeams = __bind(this.getRandomTeams, this);
|
||||||
|
this.randomTeamTierChange = __bind(this.randomTeamTierChange, this);
|
||||||
this.changeTeamFormat = __bind(this.changeTeamFormat, this);
|
this.changeTeamFormat = __bind(this.changeTeamFormat, this);
|
||||||
this.saveTeam = __bind(this.saveTeam, this);
|
this.saveTeam = __bind(this.saveTeam, this);
|
||||||
this.addNewPokemon = __bind(this.addNewPokemon, this);
|
this.addNewPokemon = __bind(this.addNewPokemon, this);
|
||||||
@@ -6408,12 +6410,15 @@
|
|||||||
'click .go_back': 'goBackToOverview',
|
'click .go_back': 'goBackToOverview',
|
||||||
'click .pokemon_list li': 'clickPokemon',
|
'click .pokemon_list li': 'clickPokemon',
|
||||||
'click .add_pokemon': 'addNewPokemonEvent',
|
'click .add_pokemon': 'addNewPokemonEvent',
|
||||||
'click .save_team': 'saveTeam'
|
'click .save_team': 'saveTeam',
|
||||||
|
'click .random-team-admin a': 'randomTeamTierChange',
|
||||||
|
'click .getrandomteams': 'getRandomTeams'
|
||||||
};
|
};
|
||||||
|
|
||||||
TeambuilderView.prototype.initialize = function(attributes) {
|
TeambuilderView.prototype.initialize = function(attributes) {
|
||||||
this.selectedPokemon = 0;
|
this.selectedPokemon = 0;
|
||||||
this.selectedTeam = null;
|
this.selectedTeam = null;
|
||||||
|
this.randomformatadmin = window.DEFAULT_FORMAT;
|
||||||
this.render();
|
this.render();
|
||||||
this.listenTo(PokeBattle.TeamStore, 'reset', this.resetTeams);
|
this.listenTo(PokeBattle.TeamStore, 'reset', this.resetTeams);
|
||||||
this.listenTo(PokeBattle.TeamStore, 'add', this.addNewTeam);
|
this.listenTo(PokeBattle.TeamStore, 'add', this.addNewTeam);
|
||||||
@@ -6594,13 +6599,6 @@
|
|||||||
format = $link.data('format');
|
format = $link.data('format');
|
||||||
team = this.getSelectedTeam();
|
team = this.getSelectedTeam();
|
||||||
realformat = window.PokeBattle.conditions.Formats_[format];
|
realformat = window.PokeBattle.conditions.Formats_[format];
|
||||||
console.log(team.hasPBV());
|
|
||||||
console.log(team.hasTier());
|
|
||||||
if (realformat.tierBased && team.hasPBV()) {
|
|
||||||
console.log('this');
|
|
||||||
} else if (!realformat.tierBased && team.hasTier()) {
|
|
||||||
console.log('that');
|
|
||||||
}
|
|
||||||
if (format !== team.get('generation')) {
|
if (format !== team.get('generation')) {
|
||||||
team.set('generation', format);
|
team.set('generation', format);
|
||||||
this.renderTeam();
|
this.renderTeam();
|
||||||
@@ -6608,6 +6606,17 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
TeambuilderView.prototype.randomTeamTierChange = function(e) {
|
||||||
|
this.$("#currentselectedrandomadminformat")[0].innerHTML = e.currentTarget.text;
|
||||||
|
return this.randomformatadmin = e.currentTarget.dataset.format;
|
||||||
|
};
|
||||||
|
|
||||||
|
TeambuilderView.prototype.getRandomTeams = function(e) {
|
||||||
|
var number;
|
||||||
|
number = parseInt(e.currentTarget.textContent, 10);
|
||||||
|
return PokeBattle.primus.send('getRandomTeamsAdmin', this.randomformatadmin, number);
|
||||||
|
};
|
||||||
|
|
||||||
TeambuilderView.prototype.setSelectedPokemonIndex = function(index) {
|
TeambuilderView.prototype.setSelectedPokemonIndex = function(index) {
|
||||||
var pokemon;
|
var pokemon;
|
||||||
pokemon = this.getSelectedTeam().at(index);
|
pokemon = this.getSelectedTeam().at(index);
|
||||||
|
|||||||
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
var Generations = {"RB":{"SpeciesData":{"Abomasnow":{"eggGroups":["monster","grass"],"evolvedFrom":"Snover","genderRatio":4,"generation":4,"id":460},"Abra":{"eggGroups":["human-like"],"evolvesInto":["Kadabra"],"genderRatio":2,"generation":1,"id":63},"Absol":{"eggGroups":["field"],"genderRatio":4,"generation":3,"id":359},"Accelgor":{"eggGroups":["bug"],"evolvedFrom":"Shelmet","genderRatio":4,"generation":5,"id":617},"Aerodactyl":{"eggGroups":["flying"],"genderRatio":1,"generation":1,"id":142},"Aggron":{"eggGroups":["monster"],"evolvedFrom":"Lairon","genderRatio":4,"generation":3,"id":306},"Aipom":{"eggGroups":["field"],"evolvesInto":["Ambipom"],"genderRatio":4,"generation":2,"id":190},"Alakazam":{"eggGroups":["human-like"],"evolvedFrom":"Kadabra","genderRatio":2,"generation":1,"id":65},"Alomomola":{"eggGroups":["water1","water2"],"genderRatio":4,"generation":5,"id":594},"Altaria":{"eggGroups":["flying","dragon"],"evolvedFrom":"Swablu","genderRatio":4,"generation":3,"id":334},"Ambipom":{"eggGroups":["field"],"evolvedFrom":"Aipom","genderRatio":4,"generation":4,"id":424},"Amoonguss":{"eggGroups":["grass"],"evolvedFrom":"Foongus","genderRatio":4,"generation":5,"id":591},"Ampharos":{"eggGroups":["monster","field"],"evolvedFrom":"Flaaffy","genderRatio":4,"generation":2,"id":181},"Anorith":{"eggGroups":["water3"],"evolvesInto":["Armaldo"],"genderRatio":1,"generation":3,"id":347},"Arbok":{"eggGroups":["field","dragon"],"evolvedFrom":"Ekans","genderRatio":4,"generation":1,"id":24},"Arcanine":{"eggGroups":["field"],"evolvedFrom":"Growlithe","genderRatio":2,"generation":1,"id":59},"Arceus":{"eggGroups":["undiscovered"],"genderRatio":-1,"generation":4,"id":493},"Archen":{"eggGroups":["flying","water3"],"evolvesInto":["Archeops"],"genderRatio":1,"generation":5,"id":566},"Archeops":{"eggGroups":["flying","water3"],"evolvedFrom":"Archen","genderRatio":1,"generation":5,"id":567},"Ariados":{"eggGroups":["bug"],"evolvedFrom":"Spinarak","genderRatio":4,"generation":2,"id":168},"Armaldo":{"eggGroups":["water3"],"evolvedFrom":"Anorith","genderRatio":1,"generation":3,"id":348},"Aron":{"eggGroups":["monster"],"evolvesInto":["Lairon"],"genderRatio":4,"generation":3,"id":304},"Articuno":{"eggGroups":["undiscovered"],"genderRatio":-1,"generation":1,"id":144},"Audino":{"eggGroups":["fairy"],"genderRatio":4,"generation":5,"id":531},"Axew":{"eggGroups":["monster","dragon"],"evolvesInto":["Fraxure"],"genderRatio":4,"generation":5,"id":610},"Azelf":{"eggGroups":["undiscovered"],"genderRatio":-1,"generation":4,"id":482},"Azumarill":{"eggGroups":["water1","fairy"],"evolvedFrom":"Marill","genderRatio":4,"generation":2,"id":184},"Azurill":{"eggGroups":["undiscovered"],"evolvesInto":["Marill"],"genderRatio":6,"generation":3,"id":298},"Bagon":{"eggGroups":["dragon"],"evolvesInto":["Shelgon"],"genderRatio":4,"generation":3,"id":371},"Baltoy":{"eggGroups":["mineral"],"evolvesInto":["Claydol"],"genderRatio":-1,"generation":3,"id":343},"Banette":{"eggGroups":["amorphous"],"evolvedFrom":"Shuppet","genderRatio":4,"generation":3,"id":354},"Barboach":{"eggGroups":["water2"],"evolvesInto":["Whiscash"],"genderRatio":4,"generation":3,"id":339},"Basculin":{"eggGroups":["water2"],"genderRatio":4,"generation":5,"id":550},"Bastiodon":{"eggGroups":["monster"],"evolvedFrom":"Shieldon","genderRatio":1,"generation":4,"id":411},"Bayleef":{"eggGroups":["monster","grass"],"evolvedFrom":"Chikorita","evolvesInto":["Meganium"],"genderRatio":1,"generation":2,"id":153},"Beartic":{"eggGroups":["field"],"evolvedFrom":"Cubchoo","genderRatio":4,"generation":5,"id":614},"Beautifly":{"eggGroups":["bug"],"evolvedFrom":"Silcoon","genderRatio":4,"generation":3,"id":267},"Beedrill":{"eggGroups":["bug"],"evolvedFrom":"Kakuna","genderRatio":4,"generation":1,"id":15},"Beheeyem":{"eggGroups":["human-like"],"evolvedFrom":"Elgyem","genderRatio":4,"generation":5,"id":606},"Beldum":{"eggGroups":["mineral"],"evolvesInto":["Metang"],"genderRatio":-1,"generation":3,"id":374},"Bellossom":{"eggGroups":["grass"],"evolvedFrom":"Gloom","genderRatio":4,"generation":2,"id":182},"Bellsprout":{"eggGroups":["grass"],"evolvesInto":["Weepinbell"],"genderRatio":4,"generation":1,"id":69},"Bibarel":{"eggGroups":["water1","field"],"evolvedFrom":"Bidoof","genderRatio":4,"generation":4,"id":400},"Bidoof":{"eggGroups":["water1","field"],"evolvesInto":["Bibarel"],"genderRatio":4,"generation":4,"id":399},"Bisharp":{"eggGroups":["human-like"],"evolvedFrom":"Pawniard","genderRatio":4,"generation":5,"id":625},"Blastoise":{"eggGroups":["monster","water1"],"evolvedFrom":"Wartortle","genderRatio":1,"generation":1,"id":9},"Blaziken":{"eggGroups":["field"],"evolvedFrom":"Combusken","genderRatio":1,"generation":3,"id":257},"Blissey":{"eggGroups":["fairy"],"evolvedFrom":"Chansey","genderRatio":8,"generation":2,"id":242},"Blitzle":{"eggGroups":["field"],"evolvesInto":["Zebstrika"],"genderRatio":4,"generation":5,"id":522},"Boldore":{"eggGroups":["mineral"],"evolvedFrom":"Roggenrola","evolvesInto":["Gigalith"],"genderRatioLine truncated
|
var Generations = {"RB":{"SpeciesData":{"Abomasnow":{"eggGroups":["monster","grass"],"evolvedFrom":"Snover","genderRatio":4,"generation":4,"id":460},"Abra":{"eggGroups":["human-like"],"evolvesInto":["Kadabra"],"genderRatio":2,"generation":1,"id":63},"Absol":{"eggGroups":["field"],"genderRatio":4,"generation":3,"id":359},"Accelgor":{"eggGroups":["bug"],"evolvedFrom":"Shelmet","genderRatio":4,"generation":5,"id":617},"Aerodactyl":{"eggGroups":["flying"],"genderRatio":1,"generation":1,"id":142},"Aggron":{"eggGroups":["monster"],"evolvedFrom":"Lairon","genderRatio":4,"generation":3,"id":306},"Aipom":{"eggGroups":["field"],"evolvesInto":["Ambipom"],"genderRatio":4,"generation":2,"id":190},"Alakazam":{"eggGroups":["human-like"],"evolvedFrom":"Kadabra","genderRatio":2,"generation":1,"id":65},"Alomomola":{"eggGroups":["water1","water2"],"genderRatio":4,"generation":5,"id":594},"Altaria":{"eggGroups":["flying","dragon"],"evolvedFrom":"Swablu","genderRatio":4,"generation":3,"id":334},"Ambipom":{"eggGroups":["field"],"evolvedFrom":"Aipom","genderRatio":4,"generation":4,"id":424},"Amoonguss":{"eggGroups":["grass"],"evolvedFrom":"Foongus","genderRatio":4,"generation":5,"id":591},"Ampharos":{"eggGroups":["monster","field"],"evolvedFrom":"Flaaffy","genderRatio":4,"generation":2,"id":181},"Anorith":{"eggGroups":["water3"],"evolvesInto":["Armaldo"],"genderRatio":1,"generation":3,"id":347},"Arbok":{"eggGroups":["field","dragon"],"evolvedFrom":"Ekans","genderRatio":4,"generation":1,"id":24},"Arcanine":{"eggGroups":["field"],"evolvedFrom":"Growlithe","genderRatio":2,"generation":1,"id":59},"Arceus":{"eggGroups":["undiscovered"],"genderRatio":-1,"generation":4,"id":493},"Archen":{"eggGroups":["flying","water3"],"evolvesInto":["Archeops"],"genderRatio":1,"generation":5,"id":566},"Archeops":{"eggGroups":["flying","water3"],"evolvedFrom":"Archen","genderRatio":1,"generation":5,"id":567},"Ariados":{"eggGroups":["bug"],"evolvedFrom":"Spinarak","genderRatio":4,"generation":2,"id":168},"Armaldo":{"eggGroups":["water3"],"evolvedFrom":"Anorith","genderRatio":1,"generation":3,"id":348},"Aron":{"eggGroups":["monster"],"evolvesInto":["Lairon"],"genderRatio":4,"generation":3,"id":304},"Articuno":{"eggGroups":["undiscovered"],"genderRatio":-1,"generation":1,"id":144},"Audino":{"eggGroups":["fairy"],"genderRatio":4,"generation":5,"id":531},"Axew":{"eggGroups":["monster","dragon"],"evolvesInto":["Fraxure"],"genderRatio":4,"generation":5,"id":610},"Azelf":{"eggGroups":["undiscovered"],"genderRatio":-1,"generation":4,"id":482},"Azumarill":{"eggGroups":["water1","fairy"],"evolvedFrom":"Marill","genderRatio":4,"generation":2,"id":184},"Azurill":{"eggGroups":["undiscovered"],"evolvesInto":["Marill"],"genderRatio":6,"generation":3,"id":298},"Bagon":{"eggGroups":["dragon"],"evolvesInto":["Shelgon"],"genderRatio":4,"generation":3,"id":371},"Baltoy":{"eggGroups":["mineral"],"evolvesInto":["Claydol"],"genderRatio":-1,"generation":3,"id":343},"Banette":{"eggGroups":["amorphous"],"evolvedFrom":"Shuppet","genderRatio":4,"generation":3,"id":354},"Barboach":{"eggGroups":["water2"],"evolvesInto":["Whiscash"],"genderRatio":4,"generation":3,"id":339},"Basculin":{"eggGroups":["water2"],"genderRatio":4,"generation":5,"id":550},"Bastiodon":{"eggGroups":["monster"],"evolvedFrom":"Shieldon","genderRatio":1,"generation":4,"id":411},"Bayleef":{"eggGroups":["monster","grass"],"evolvedFrom":"Chikorita","evolvesInto":["Meganium"],"genderRatio":1,"generation":2,"id":153},"Beartic":{"eggGroups":["field"],"evolvedFrom":"Cubchoo","genderRatio":4,"generation":5,"id":614},"Beautifly":{"eggGroups":["bug"],"evolvedFrom":"Silcoon","genderRatio":4,"generation":3,"id":267},"Beedrill":{"eggGroups":["bug"],"evolvedFrom":"Kakuna","genderRatio":4,"generation":1,"id":15},"Beheeyem":{"eggGroups":["human-like"],"evolvedFrom":"Elgyem","genderRatio":4,"generation":5,"id":606},"Beldum":{"eggGroups":["mineral"],"evolvesInto":["Metang"],"genderRatio":-1,"generation":3,"id":374},"Bellossom":{"eggGroups":["grass"],"evolvedFrom":"Gloom","genderRatio":4,"generation":2,"id":182},"Bellsprout":{"eggGroups":["grass"],"evolvesInto":["Weepinbell"],"genderRatio":4,"generation":1,"id":69},"Bibarel":{"eggGroups":["water1","field"],"evolvedFrom":"Bidoof","genderRatio":4,"generation":4,"id":400},"Bidoof":{"eggGroups":["water1","field"],"evolvesInto":["Bibarel"],"genderRatio":4,"generation":4,"id":399},"Bisharp":{"eggGroups":["human-like"],"evolvedFrom":"Pawniard","genderRatio":4,"generation":5,"id":625},"Blastoise":{"eggGroups":["monster","water1"],"evolvedFrom":"Wartortle","genderRatio":1,"generation":1,"id":9},"Blaziken":{"eggGroups":["field"],"evolvedFrom":"Combusken","genderRatio":1,"generation":3,"id":257},"Blissey":{"eggGroups":["fairy"],"evolvedFrom":"Chansey","genderRatio":8,"generation":2,"id":242},"Blitzle":{"eggGroups":["field"],"evolvesInto":["Zebstrika"],"genderRatio":4,"generation":5,"id":522},"Boldore":{"eggGroups":["mineral"],"evolvedFrom":"Roggenrola","evolvesInto":["Gigalith"],"genderRatioLine truncated
|
||||||
EventPokemon = {"Absol":[{"generation":3,"level":5,"moves":["Scratch","Leer","Wish"],"forme":"default"},{"generation":3,"level":5,"moves":["Scratch","Leer","Spite"],"forme":"default"},{"generation":3,"level":35,"moves":["Razor Wind","Bite","Swords Dance","Spite"],"forme":"default"},{"generation":3,"level":70,"moves":["Double Team","Slash","Future Sight","Perish Song"],"forme":"default"}],"Aerodactyl":[{"generation":5,"level":15,"gender":"M","isDW":false,"abilities":["Pressure"],"moves":["Steel Wing","Ice Fang","Fire Fang","Thunder Fang"],"pokeball":"Cherish Ball","forme":"default"}],"Aggron":[{"generation":3,"level":100,"moves":["Iron Tail","Protect","Metal Sound","Double-Edge"],"forme":"default"},{"generation":3,"level":50,"moves":["Take Down","Iron Tail","Protect","Metal Sound"],"forme":"default"}],"Aipom":[{"generation":3,"level":10,"gender":"M","moves":["Scratch","Tail Whip","Sand-Attack"],"forme":"default"}],"Alakazam":[{"generation":3,"level":70,"moves":["Future Sight","Calm Mind","Psychic","Trick"],"forme":"default"}],"Altaria":[{"generation":3,"level":45,"moves":["Take Down","DragonBreath","Dragon Dance","Refresh"],"forme":"default"},{"generation":3,"level":36,"moves":["Heal Bell","DragonBreath","SolarBeam","Aerial Ace"],"forme":"default"},{"generation":5,"level":35,"gender":"M","isDW":true,"moves":["Take Down","Natural Gift","DragonBreath","False Swipe"],"forme":"default"}],"Anorith":[{"generation":5,"level":15,"gender":"M","isDW":false,"moves":["Harden","Mud Sport","Water Gun","Cross Poison"],"pokeball":"Cherish Ball","forme":"default"}],"Arbok":[{"generation":3,"level":33,"moves":["Refresh","Sludge Bomb","Glare","Bite"],"forme":"default"}],"Arceus":[{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"}Line truncated
|
EventPokemon = {"Absol":[{"generation":3,"level":5,"moves":["Scratch","Leer","Wish"],"forme":"default"},{"generation":3,"level":5,"moves":["Scratch","Leer","Spite"],"forme":"default"},{"generation":3,"level":35,"moves":["Razor Wind","Bite","Swords Dance","Spite"],"forme":"default"},{"generation":3,"level":70,"moves":["Double Team","Slash","Future Sight","Perish Song"],"forme":"default"}],"Aerodactyl":[{"generation":5,"level":15,"gender":"M","isDW":false,"abilities":["Pressure"],"moves":["Steel Wing","Ice Fang","Fire Fang","Thunder Fang"],"pokeball":"Cherish Ball","forme":"default"}],"Aggron":[{"generation":3,"level":100,"moves":["Iron Tail","Protect","Metal Sound","Double-Edge"],"forme":"default"},{"generation":3,"level":50,"moves":["Take Down","Iron Tail","Protect","Metal Sound"],"forme":"default"}],"Aipom":[{"generation":3,"level":10,"gender":"M","moves":["Scratch","Tail Whip","Sand-Attack"],"forme":"default"}],"Alakazam":[{"generation":3,"level":70,"moves":["Future Sight","Calm Mind","Psychic","Trick"],"forme":"default"}],"Altaria":[{"generation":3,"level":45,"moves":["Take Down","DragonBreath","Dragon Dance","Refresh"],"forme":"default"},{"generation":3,"level":36,"moves":["Heal Bell","DragonBreath","SolarBeam","Aerial Ace"],"forme":"default"},{"generation":5,"level":35,"gender":"M","isDW":true,"moves":["Take Down","Natural Gift","DragonBreath","False Swipe"],"forme":"default"}],"Anorith":[{"generation":5,"level":15,"gender":"M","isDW":false,"moves":["Harden","Mud Sport","Water Gun","Cross Poison"],"pokeball":"Cherish Ball","forme":"default"}],"Arbok":[{"generation":3,"level":33,"moves":["Refresh","Sludge Bomb","Glare","Bite"],"forme":"default"}],"Arceus":[{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"},{"generation":5,"level":100,"moves":["Recover","Hyper Beam","Perish Song","Judgment"],"forme":"default"},{"generation":4,"level":100,"moves":["Judgment","Roar of Time","Spacial Rend","Shadow Force"],"pokeball":"Cherish Ball","forme":"default"}Line truncated
|
||||||
HelpDescriptions = {"1":{"rating":" <i>Also /ranking, /rank. </i>Gets a single username's rating on this server. Usage: /rating username","battles":"Finds all the battles a username is playing in on this server. Usage: /battles username"},"3":{"mute":"Default length is 10 minutes, up to a maximum of two days. To specify different lengths, use 1m2h3d4w (minute, hour, day, week). Usage: /mute username, length, reason","unmute":"Unmutes a username. Usage: /unmute username","ban":"Default length is one hour, up to a maximum of one day. To specify different lengths, use 1m2h3d (minute, hour, day). Usage: /ban username, length, reason","unban":"Unbans a username. Usage: /unban username","ip":"Finds the current ips under use by a user","wall":" <i>Also /announce. </i>Announces something to the entire server. Usage: /wall message","whois":"Finds all alts associated with a username, or the main username of an alt"},"4":{"lockdown":"Prevents new battles from starting. Usage: /lockdown [on|off]","voice":" <i>Also /driver. </i>Voices a username permanently. Usage: /voice username","mod":"Mods a username permanently. Usage: /mod username","topic":"Changes the topic message. Usage: /topic message"},"5":{"admin":"Admins a username permanently. Usage: /admin username","deauth":"Deauthes a username permanently. Usage: /deauth username","eval":"Evaluates a script in the context of the server."}};
|
HelpDescriptions = {"1":{"rating":" <i>Also /ranking, /rank. </i>Gets a single username's rating on this server. Usage: /rating username","battles":"Finds all the battles a username is playing in on this server. Usage: /battles username"},"3":{"mute":"Default length is 10 minutes, up to a maximum of two days. To specify different lengths, use 1m2h3d4w (minute, hour, day, week). Usage: /mute username, length, reason","unmute":"Unmutes a username. Usage: /unmute username","ban":"Default length is one hour, up to a maximum of one day. To specify different lengths, use 1m2h3d (minute, hour, day). Usage: /ban username, length, reason","unban":"Unbans a username. Usage: /unban username","ip":"Finds the current ips under use by a user","wall":" <i>Also /announce. </i>Announces something to the entire server. Usage: /wall message","whois":"Finds all alts associated with a username, or the main username of an alt"},"4":{"lockdown":"Prevents new battles from starting. Usage: /lockdown [on|off]","voice":" <i>Also /driver. </i>Voices a username permanently. Usage: /voice username","mod":"Mods a username permanently. Usage: /mod username","topic":"Changes the topic message. Usage: /topic message"},"5":{"admin":"Admins a username permanently. Usage: /admin username","deauth":"Deauthes a username permanently. Usage: /deauth username","eval":"Evaluates a script in the context of the server."}};
|
||||||
+27
-2
@@ -1083,7 +1083,7 @@ var locals_ = (locals || {}),team = locals_.team,window = locals_.window;buf.pus
|
|||||||
this["JST"]["teambuilder/teams"] = function anonymous(locals
|
this["JST"]["teambuilder/teams"] = function anonymous(locals
|
||||||
/**/) {
|
/**/) {
|
||||||
var buf = [];
|
var buf = [];
|
||||||
var locals_ = (locals || {}),teams = locals_.teams,window = locals_.window,text = locals_.text;buf.push("<h2>Your teams</h2><div class=\"teambuilder_teams clearfix\">");
|
var locals_ = (locals || {}),teams = locals_.teams,window = locals_.window;buf.push("<h2>Your teams</h2><div class=\"teambuilder_teams clearfix\">");
|
||||||
// iterate teams
|
// iterate teams
|
||||||
;(function(){
|
;(function(){
|
||||||
var $$obj = teams;
|
var $$obj = teams;
|
||||||
@@ -1109,7 +1109,32 @@ buf.push(null == (jade.interp = window.JST['teambuilder/team']({team: team, wind
|
|||||||
buf.push("</div><div class=\"button button_blue add-new-team\">Add new team</div><div class=\"button import-team\">Import</div>");
|
buf.push("</div><div class=\"button button_blue add-new-team\">Add new team</div><div class=\"button import-team\">Import</div>");
|
||||||
if ( window.PokeBattle.username == "Deukhoofd" || window.PokeBattle.username == "thesuzerain")
|
if ( window.PokeBattle.username == "Deukhoofd" || window.PokeBattle.username == "thesuzerain")
|
||||||
{
|
{
|
||||||
buf.push("<div class=\"Team-Admin\"><h5>Admin Commands</h5><div class=\"button get-teams\">Get all teams</div><br/>Get teams from user<input" + (jade.attrs({ 'type':(text) }, {"type":true})) + "/></div>");
|
buf.push("<div class=\"Team-Admin\"><h5>Admin Commands</h5><div class=\"button get-teams\">Get all teams</div><br/>Get Random teams");
|
||||||
|
var allformats = window.PokeBattle.conditions.Formats()
|
||||||
|
buf.push("<div class=\"dropdown random-team-admin\"><div data-toggle=\"dropdown\" class=\"current-format-random-admin button dropdown-toggle\"><a" + (jade.attrs({ 'id':('currentselectedrandomadminformat'), 'href':("#"), 'data-format':("" + (allformats[window.DEFAULT_FORMAT].name) + "") }, {"href":true,"data-format":true})) + ">" + (jade.escape((jade.interp = allformats[window.DEFAULT_FORMAT].humanName) == null ? '' : jade.interp)) + "</a></div><ul role=\"menu\" class=\"dropdown-menu\">");
|
||||||
|
// iterate allformats
|
||||||
|
;(function(){
|
||||||
|
var $$obj = allformats;
|
||||||
|
if ('number' == typeof $$obj.length) {
|
||||||
|
|
||||||
|
for (var $index = 0, $$l = $$obj.length; $index < $$l; $index++) {
|
||||||
|
var format = $$obj[$index];
|
||||||
|
|
||||||
|
buf.push("<li><a" + (jade.attrs({ 'href':("#"), 'data-format':("" + (format.name) + "") }, {"href":true,"data-format":true})) + ">" + (jade.escape((jade.interp = format.humanName) == null ? '' : jade.interp)) + "</a></li>");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
var $$l = 0;
|
||||||
|
for (var $index in $$obj) {
|
||||||
|
$$l++; var format = $$obj[$index];
|
||||||
|
|
||||||
|
buf.push("<li><a" + (jade.attrs({ 'href':("#"), 'data-format':("" + (format.name) + "") }, {"href":true,"data-format":true})) + ">" + (jade.escape((jade.interp = format.humanName) == null ? '' : jade.interp)) + "</a></li>");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}).call(this);
|
||||||
|
|
||||||
|
buf.push("</ul><div class=\"button getrandomteams\">1</div><div class=\"button getrandomteams\">5</div><div class=\"button getrandomteams\">10</div><div class=\"button getrandomteams\">25</div></div></div>");
|
||||||
};return buf.join("");
|
};return buf.join("");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+5
-1
@@ -59,7 +59,11 @@ exports.middleware = -> (req, res, next) ->
|
|||||||
base64payload = new Buffer(payload).toString('base64')
|
base64payload = new Buffer(payload).toString('base64')
|
||||||
urlencoded = encodeURIComponent(base64payload)
|
urlencoded = encodeURIComponent(base64payload)
|
||||||
crypted = crypto.createHmac('SHA256', secretstring).update(base64payload).digest('hex')
|
crypted = crypto.createHmac('SHA256', secretstring).update(base64payload).digest('hex')
|
||||||
return res.redirect("http://forums.p-insurgence.com/session/sso_provider?sso=" + urlencoded + "&sig=" + crypted)
|
console.log(req.headers.host)
|
||||||
|
if req.headers.host is "91.121.152.74:8000"
|
||||||
|
return res.redirect("http://91.121.152.74/session/sso_provider?sso=" + urlencoded + "&sig=" + crypted)
|
||||||
|
else
|
||||||
|
return res.redirect("https://forums.p-insurgence.com/session/sso_provider?sso=" + urlencoded + "&sig=" + crypted)
|
||||||
|
|
||||||
exports.matchToken = (req, id, token, next) ->
|
exports.matchToken = (req, id, token, next) ->
|
||||||
hmac = crypto.createHmac('sha256', config.SECRET_KEY)
|
hmac = crypto.createHmac('sha256', config.SECRET_KEY)
|
||||||
|
|||||||
@@ -48,6 +48,8 @@ for gen, i in @ALL_GENERATIONS
|
|||||||
AbilityMap = {}
|
AbilityMap = {}
|
||||||
TypeMap = {}
|
TypeMap = {}
|
||||||
|
|
||||||
|
RandomList = []
|
||||||
|
|
||||||
if gen is 'in'
|
if gen is 'in'
|
||||||
maxLevel = 120
|
maxLevel = 120
|
||||||
else
|
else
|
||||||
@@ -68,6 +70,11 @@ for gen, i in @ALL_GENERATIONS
|
|||||||
for ability in abilities
|
for ability in abilities
|
||||||
AbilityMap[ability] ?= []
|
AbilityMap[ability] ?= []
|
||||||
AbilityMap[ability].push([pokemonName, formeName])
|
AbilityMap[ability].push([pokemonName, formeName])
|
||||||
|
#Add random list
|
||||||
|
randomMapData = formeData
|
||||||
|
randomMapData.Name = pokemonName
|
||||||
|
randomMapData.Forme = formeName
|
||||||
|
RandomList.push(randomMapData)
|
||||||
|
|
||||||
AbilityList = Object.keys(AbilityData)
|
AbilityList = Object.keys(AbilityData)
|
||||||
MoveList = Object.keys(MoveData)
|
MoveList = Object.keys(MoveData)
|
||||||
@@ -88,6 +95,7 @@ for gen, i in @ALL_GENERATIONS
|
|||||||
AbilityMap : AbilityMap
|
AbilityMap : AbilityMap
|
||||||
TypeMap : TypeMap
|
TypeMap : TypeMap
|
||||||
maxLevel : maxLevel
|
maxLevel : maxLevel
|
||||||
|
RandomList : RandomList
|
||||||
|
|
||||||
# Now add moves for every generation
|
# Now add moves for every generation
|
||||||
for gen in @ALL_GENERATIONS
|
for gen in @ALL_GENERATIONS
|
||||||
|
|||||||
+5297
-5262
File diff suppressed because it is too large.
Load diff
@@ -19,6 +19,7 @@ config = require('./config')
|
|||||||
alts = require('./alts')
|
alts = require('./alts')
|
||||||
replays = require('./replays')
|
replays = require('./replays')
|
||||||
modify = require('./modify')
|
modify = require('./modify')
|
||||||
|
randomTeam = require('./randomTeams')
|
||||||
learnsets = require '../shared/learnsets'
|
learnsets = require '../shared/learnsets'
|
||||||
|
|
||||||
|
|
||||||
@@ -278,6 +279,15 @@ CLIENT_VERSION = assets.getVersion()
|
|||||||
.catch (err) ->
|
.catch (err) ->
|
||||||
console.error(err)
|
console.error(err)
|
||||||
|
|
||||||
|
spark.on 'getRandomTeamsAdmin', (format, number) ->
|
||||||
|
if user.authority == auth.levels.OWNER
|
||||||
|
teamArr = []
|
||||||
|
for [1..number]
|
||||||
|
randomTeam.createTeam format, (team) ->
|
||||||
|
teamArr.push(team)
|
||||||
|
teams = new database.Teams(teamArr)
|
||||||
|
spark.send('receiveTeams', teams.toJSON())
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# PRIVATE MESSAGES #
|
# PRIVATE MESSAGES #
|
||||||
####################
|
####################
|
||||||
|
|||||||
@@ -0,0 +1,231 @@
|
|||||||
|
gen = require './generations'
|
||||||
|
{_} = require 'underscore'
|
||||||
|
database = require('./database')
|
||||||
|
|
||||||
|
FormatsClass = require '../shared/conditions'
|
||||||
|
Formats = FormatsClass.Formats()
|
||||||
|
pokemonArr = []
|
||||||
|
hasmega = false
|
||||||
|
|
||||||
|
createTeam = (format, next) ->
|
||||||
|
pokemonArr = []
|
||||||
|
hasmega = false
|
||||||
|
|
||||||
|
conditions = Formats[format]
|
||||||
|
if conditions.tierBased == false
|
||||||
|
console.log("PBV is not supported")
|
||||||
|
return
|
||||||
|
#throw error
|
||||||
|
generation = conditions.generation.toUpperCase()
|
||||||
|
for condNum in conditions.conditions
|
||||||
|
for conditionName, conditionNumber of FormatsClass.Conditions
|
||||||
|
if conditionNumber is condNum
|
||||||
|
if /TIER_/.test(conditionName)
|
||||||
|
tier = conditionName.replace /TIER_/, ""
|
||||||
|
break
|
||||||
|
getValidFormes generation, tier, (list) ->
|
||||||
|
if list.length < 6
|
||||||
|
console.log("Not enough pokemon in this tier to make a team")
|
||||||
|
return
|
||||||
|
team = {}
|
||||||
|
team.name = "Random" + tier
|
||||||
|
team.id = Math.floor(Math.random() * (10000000) + 10000000)
|
||||||
|
team.generation = conditions.generation
|
||||||
|
getPokemonArr = ->
|
||||||
|
if pokemonArr.length < 6
|
||||||
|
generatePokemon list, generation, (pkmn) ->
|
||||||
|
pokemonArr.push(pkmn)
|
||||||
|
getPokemonArr()
|
||||||
|
getPokemonArr()
|
||||||
|
|
||||||
|
pokemonArr.splice(6)
|
||||||
|
team.pokemon = pokemonArr
|
||||||
|
|
||||||
|
attributes = _.pick(team, 'id', 'name', 'generation')
|
||||||
|
attributes['trainer_id'] = 1
|
||||||
|
attributes['contents'] = JSON.stringify(team.pokemon)
|
||||||
|
|
||||||
|
Team = new database.Team(attributes)
|
||||||
|
next(Team)
|
||||||
|
|
||||||
|
getValidFormes = (generation, tier, next) ->
|
||||||
|
filteredlist = []
|
||||||
|
fullList = gen.GenerationJSON[generation].RandomList
|
||||||
|
for pok in fullList
|
||||||
|
thistier = pok.tier[0]
|
||||||
|
#If tier is correct and has random moves to choose from
|
||||||
|
if thistier == tier and _.has pok, "randomMoves"
|
||||||
|
filteredlist.push(pok)
|
||||||
|
next(filteredlist)
|
||||||
|
|
||||||
|
|
||||||
|
generatePokemon = (list, generation, next) ->
|
||||||
|
|
||||||
|
tryGenerate = ->
|
||||||
|
#Generate a random pokemon
|
||||||
|
pokemon = list[Math.floor(Math.random() * (list.length))]
|
||||||
|
|
||||||
|
for teamMember in pokemonArr
|
||||||
|
#reject if we already have this species
|
||||||
|
if pokemon.Name is teamMember.species
|
||||||
|
tryGenerate()
|
||||||
|
return
|
||||||
|
#reject if we already have a mega
|
||||||
|
if /mega/.test(pokemon.Forme) and hasmega
|
||||||
|
tryGenerate()
|
||||||
|
return
|
||||||
|
|
||||||
|
Obj = {}
|
||||||
|
Obj.species = pokemon.Name
|
||||||
|
#Generate moves through different function
|
||||||
|
possibleMoves = pokemon.randomMoves
|
||||||
|
Obj.moves = generateMoves(possibleMoves)
|
||||||
|
|
||||||
|
#Get forme
|
||||||
|
if pokemon.isBattleOnly
|
||||||
|
#gotta give it a megastone if it's a mega
|
||||||
|
if /mega/.test(pokemon.Forme)
|
||||||
|
itemList = gen.GenerationJSON[generation].ItemData
|
||||||
|
for item, itemdata of itemList
|
||||||
|
if _.has itemdata, "mega"
|
||||||
|
if itemdata.mega[0] is pokemon.Name and itemdata.mega[1] is pokemon.Forme
|
||||||
|
Obj.item = item
|
||||||
|
hasmega = true
|
||||||
|
break
|
||||||
|
#gotta handle itembased mons
|
||||||
|
if pokemon.isItemBased
|
||||||
|
itemList = gen.GenerationJSON[generation].ItemData
|
||||||
|
for item, itemdata of itemList
|
||||||
|
if _.has itemdata, "itemForme"
|
||||||
|
if itemdata.itemForme[0] is pokemon.Name and itemdata.itemForme[1] is pokemon.Forme
|
||||||
|
Obj.item = item
|
||||||
|
break
|
||||||
|
|
||||||
|
Obj.forme = "default"
|
||||||
|
pokemon = gen.GenerationJSON[generation].FormeData[pokemon.Name]["default"]
|
||||||
|
else
|
||||||
|
Obj.forme = pokemon.Forme
|
||||||
|
|
||||||
|
#Assign ability
|
||||||
|
abiInt = 0
|
||||||
|
if _.has pokemon, "hiddenAbility"
|
||||||
|
abiInt = 1
|
||||||
|
abilityRan = Math.floor(Math.random() * (pokemon.abilities.length + abiInt))
|
||||||
|
if abilityRan is pokemon.abilities.length
|
||||||
|
Obj.ability = pokemon.hiddenAbility
|
||||||
|
else
|
||||||
|
Obj.ability = pokemon.abilities[abilityRan]
|
||||||
|
|
||||||
|
natureArray = ["Hardy","Lonely","Brave","Adamant","Naughty","Bold","Docile","Relaxed","Impish","Lax","Timid","Hasty","Serious","Jolly","Naive","Modest","Mild","Quiet","Bashful","Rash","Calm","Gentle","Sassy","Careful","Quirky"]
|
||||||
|
Obj.nature = natureArray[Math.floor(Math.random() * (natureArray.length))]
|
||||||
|
|
||||||
|
Obj.level = gen.GenerationJSON[generation].maxLevel
|
||||||
|
Obj.happiness = 100
|
||||||
|
|
||||||
|
Obj.evs = { hp: 84, specialAttack:85, speed:84, attack:85,defense:85,specialDefense:85 }
|
||||||
|
|
||||||
|
#determine if a move is Hidden Power, to determine IVs
|
||||||
|
hiddenPower = "none"
|
||||||
|
integer = 0
|
||||||
|
for pmove in Obj.moves
|
||||||
|
if /Hidden Power/.test(pmove)
|
||||||
|
hiddenPower = pmove.replace /Hidden Power /, ""
|
||||||
|
Obj.moves[integer] = "Hidden Power"
|
||||||
|
integer = integer + 1
|
||||||
|
Obj.ivs = determineIVs(hiddenPower)
|
||||||
|
|
||||||
|
next(Obj)
|
||||||
|
tryGenerate()
|
||||||
|
|
||||||
|
generateMoves = (possibleMoves) ->
|
||||||
|
movesArr = []
|
||||||
|
while movesArr.length < 4
|
||||||
|
if movesArr.length is 0
|
||||||
|
moveIndex = Math.floor(Math.random() * (possibleMoves.length))
|
||||||
|
movesArr.push(possibleMoves[moveIndex])
|
||||||
|
else
|
||||||
|
generateMove = ->
|
||||||
|
moveIndex = Math.floor(Math.random() * (possibleMoves.length))
|
||||||
|
movename = possibleMoves[moveIndex]
|
||||||
|
#We reject the move if it's not defined
|
||||||
|
if typeof movename == "undefined"
|
||||||
|
generateMove()
|
||||||
|
return
|
||||||
|
#We reject the move if we aleady have it
|
||||||
|
for movething in movesArr
|
||||||
|
if movething is movename
|
||||||
|
generateMove()
|
||||||
|
return
|
||||||
|
#We reject the move if we already have Hidden Power
|
||||||
|
if /Hidden Power/.test(movename)
|
||||||
|
for movething in movesArr
|
||||||
|
if /Hidden Power/.test(movething)
|
||||||
|
generateMove()
|
||||||
|
return
|
||||||
|
movesArr.push(movename)
|
||||||
|
generateMove()
|
||||||
|
movesArr.splice(4)
|
||||||
|
return movesArr
|
||||||
|
|
||||||
|
determineIVs = (type) ->
|
||||||
|
ivObj = {
|
||||||
|
hp: 31,
|
||||||
|
attack: 31,
|
||||||
|
defense: 31,
|
||||||
|
specialAttack: 31,
|
||||||
|
specialDefense: 31,
|
||||||
|
speed: 31
|
||||||
|
}
|
||||||
|
switch type
|
||||||
|
when "none" then return ivObj
|
||||||
|
when "Bug"
|
||||||
|
ivObj.speed = 30
|
||||||
|
ivObj.specialDefense = 30
|
||||||
|
when "Dark" then return ivObj
|
||||||
|
when "Dragon"
|
||||||
|
ivObj.hp = 30
|
||||||
|
when "Electric"
|
||||||
|
ivObj.specialAttack = 30
|
||||||
|
when "Fighting"
|
||||||
|
ivObj.defense = 30
|
||||||
|
ivObj.specialDefense = 30
|
||||||
|
ivObj.specialAttack = 30
|
||||||
|
ivObj.speed = 30
|
||||||
|
when "Fire"
|
||||||
|
ivObj.attack = 30
|
||||||
|
ivObj.speed = 30
|
||||||
|
ivObj.specialAttack = 30
|
||||||
|
when "Flying"
|
||||||
|
ivObj.speed = 30
|
||||||
|
ivObj.specialDefense = 30
|
||||||
|
ivObj.specialAttack = 30
|
||||||
|
when "Ghost"
|
||||||
|
ivObj.attack = 30
|
||||||
|
ivObj.specialDefense = 30
|
||||||
|
when "Grass"
|
||||||
|
ivObj.hp = 30
|
||||||
|
ivObj.specialAttack = 30
|
||||||
|
when "Ground"
|
||||||
|
ivObj.specialDefense = 30
|
||||||
|
ivObj.specialAttack = 30
|
||||||
|
when "Ice"
|
||||||
|
ivObj.speed = 30
|
||||||
|
when "Poison"
|
||||||
|
ivObj.defense = 30
|
||||||
|
ivObj.specialDefense = 30
|
||||||
|
ivObj.specialAttack = 30
|
||||||
|
when "Psychic"
|
||||||
|
ivObj.hp = 30
|
||||||
|
ivObj.speed = 30
|
||||||
|
when "Rock"
|
||||||
|
ivObj.defense = 30
|
||||||
|
ivObj.speed = 30
|
||||||
|
ivObj.specialDefense = 30
|
||||||
|
when "Steel"
|
||||||
|
ivObj.specialDefense = 30
|
||||||
|
when "Water"
|
||||||
|
ivObj.speed = 30
|
||||||
|
ivObj.specialAttack = 30
|
||||||
|
return ivObj
|
||||||
|
|
||||||
|
module.exports = {createTeam}
|
||||||
Reference in new issue
Block a user