• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Project: Generation 6 for Pokémon Essentials (Pokémon sprites and PBS files)

Allgamesdude

The Creator of the WIP game, Pokémon Cosmic. Looki
283
Posts
11
Years
Alright. Is there anything else text file related I can work on? That's the only thing I could find for a non-scripter like myself.
 

DeKay

Mega Evolved
22
Posts
9
Years
  • Seen Oct 11, 2015
If I'm right Kings Shield is not claimed yet.
Would like to do that since it's kinda needed for Stance Change.
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
Alright. Is there anything else text file related I can work on? That's the only thing I could find for a non-scripter like myself.
I'm a little tired of hearing "I can't script" and then it being used as an excuse to not to ANYTHING even REMOTELY related to how something works.

You can always figure out the mechanics of something, through playtesting. For example, figuring out exactly what Flying Press does and what effects affect it (e.g. Sharp Beak). I think that's a poor example because I imagine its mechanics are understood already, but you get the idea. Imagine a scenario in which you're not sure how a particular move/effect will work, and test it. One example, although not a Gen 6 move, is Future Sight - are there items/abilities/effects which affect it? If used against a Dark Pokémon, does it fail immediately because of type immunity or does it wait until the 2 turns later to check? What if the target and/or user are switched out? Which stats are used, and when are they checked?

Research is always useful.
 

DeKay

Mega Evolved
22
Posts
9
Years
  • Seen Oct 11, 2015
Btw. as a little thing about the Inkay evolution.
In Windows you can rotate your Screen. (CTRL+Alt+[Arrow Key])
This can also be checked in the registry.
Code:
[HKEY_LOCAL_MACHINE\System\GDI\Rotation]     "Angle"=dword:B4
B4 means rotated by 180 degrees.

No Idea how that would be possible on Mac. But just as Information.

Btw. Would volunteer for Parental Bond (I am pretty much done with King's Shield | And thinking about a way how to get all the Stance Change Exceptions [Ability can't be mummied/copied/swapped etc.] easily.)
 
1,224
Posts
10
Years
Btw. as a little thing about the Inkay evolution.
In Windows you can rotate your Screen. (CTRL+Alt+[Arrow Key])
This can also be checked in the registry.
Code:
[HKEY_LOCAL_MACHINE\System\GDI\Rotation]     "Angle"=dword:B4
B4 means rotated by 180 degrees.

No Idea how that would be possible on Mac. But just as Information.

Btw. Would volunteer for Parental Bond (I am pretty much done with King's Shield | And thinking about a way how to get all the Stance Change Exceptions [Ability can't be mummied/copied/swapped etc.] easily.)

Parental Bond has been mostly done:
http://www.pokecommunity.com/showpost.php?p=8190070&postcount=2

The only thing to fix is making the second hit do 1/2 damage.
 

DeKay

Mega Evolved
22
Posts
9
Years
  • Seen Oct 11, 2015
Parental Bond has been mostly done:
[Insert Link here - I can't quote it]

The only thing to fix is making the second hit do 1/2 damage.

Ah okay my bad. Wasn't in the Claim Sheet though.
But I can maybe take care of that 1/2 damage.

Edit: Did it with less Code. But I couldn't find that it should Strike a second time even if the enemy would be dead already. So I left that out.

This is v13 Code I was told. (this is not finished and is only supposed to be an example)
PokeBattle_Battler
Code:
elsif thismove.pbIsMultiHit [COLOR=Red]|| isConst?(user.ability,PBAbilities,:PARENTALBOND) && thismove.basedamage > 0[/COLOR]
    [COLOR=Red]numhits = 2 if isConst?(user.ability,PBAbilities,:PARENTALBOND)[/COLOR] [COLOR=Red]&& numhits == 1[/COLOR]
    pbProcessMultiHitMove(thismove,user,target,numhits)
else
Code:
def pbProcessMultiHitMove(thismove,user,target,numhits)
    # Includes Triple Kick
    realnumhits=0
    for i in 0...numhits
      if !pbSuccessCheck(thismove,user,target,i==0 || thismove.function==0xBF) # Triple Kick
        target.effects[PBEffects::Conversion2Move]=-1
        target.effects[PBEffects::Conversion2Type]=0
        if thismove.function==0xBF && i>0 # Triple Kick
          break # considered a success if Triple Kick hits at least once
        else
          return
        end
      end
      realnumhits+=1
      [COLOR=Red]$ChildHit = true if isConst?(user.ability,PBAbilities,:PARENTALBOND) && i == 1[/COLOR] [COLOR=Red]&& realnumhits == numhits[/COLOR]
PokeBattle_Move
Code:
    if isConst?(attacker.ability,PBAbilities,:TECHNICIAN) && basedmg<=60
      basedmg=(basedmg*1.5).floor
    end
    if isConst?(opponent.ability,PBAbilities,:MARVELSCALE) && opponent.status>0
      defense=(defense*1.5).floor
    end
    if (isConst?(opponent.type1,PBTypes,:ROCK) ||
       isConst?(opponent.type2,PBTypes,:ROCK)) &&
       @battle.pbWeather==PBWeather::SANDSTORM
      spdef=(spdef*1.5).floor
    end
    if isConst?(opponent.item,PBItems,:EVIOLITE)
      evos=pbGetEvolvedFormData(opponent.species)
      if evos && evos.length>0
        defense=(defense*1.5).floor
        spdef=(spdef*1.5).floor
      end
    end
[COLOR=Red]    if $ChildHit=true   
      basedmg=(basedmg*0.5).floor
      $ChildHit=nil
    end[/COLOR]

mej71 is looking over my code stuffs.
 
Last edited:

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
Have you seen the specifics of how Parental Bond works? It's way complicated, and there's a lot of basic stuff in the engine that would need to be altered to make it work properly. For example, there's currently no distinction between effects that occur after each hit and effects that occur after all hits, but Pluck/SmellingSalt occur after all of them while Power-Up Punch and the like occur per hit. Present only hits once if it heals the first time, and definitely done damage the second time if it hurts the first time (I don't know if it's the same amount of damage, or just "not heal"). And so on.

Your code is definitely inadequate.

EDIT: Might it be an idea for a project to come up with a battle system flow chart? It would include every move/item/ability/weather/whatever effect and when they occur and what they do. It'd be helpful for future development of Essentials, as it would provide a bunch of useful information all in one place and allow many people to peer review it.
 
Last edited:

Allgamesdude

The Creator of the WIP game, Pokémon Cosmic. Looki
283
Posts
11
Years
I'm a little tired of hearing "I can't script" and then it being used as an excuse to not to ANYTHING even REMOTELY related to how something works.

You can always figure out the mechanics of something, through playtesting. For example, figuring out exactly what Flying Press does and what effects affect it (e.g. Sharp Beak). I think that's a poor example because I imagine its mechanics are understood already, but you get the idea. Imagine a scenario in which you're not sure how a particular move/effect will work, and test it. One example, although not a Gen 6 move, is Future Sight - are there items/abilities/effects which affect it? If used against a Dark Pokémon, does it fail immediately because of type immunity or does it wait until the 2 turns later to check? What if the target and/or user are switched out? Which stats are used, and when are they checked?

Research is always useful.

What I meant was that I'm not proficient in RGSS. I know some basic stuff, but not enough to code entire moves. Sure, I can try it, but I don't think it'll turn out fine.
 

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
You don't need to be able to code in order to do research on how one effect interacts with others.
 

DeKay

Mega Evolved
22
Posts
9
Years
  • Seen Oct 11, 2015
Have you seen the specifics of how Parental Bond works? It's way complicated, and there's a lot of basic stuff in the engine that would need to be altered to make it work properly. For example, there's currently no distinction between effects that occur after each hit and effects that occur after all hits, but Pluck/SmellingSalt occur after all of them while Power-Up Punch and the like occur per hit. Present only hits once if it heals the first time, and definitely done damage the second time if it hurts the first time (I don't know if it's the same amount of damage, or just "not heal"). And so on.

Your code is definitely inadequate.

EDIT: Might it be an idea for a project to come up with a battle system flow chart? It would include every move/item/ability/weather/whatever effect and when they occur and what they do. It'd be helpful for future development of Essentials, as it would provide a bunch of useful information all in one place and allow many people to peer review it.

I know the Code is not done yet. mej and I are still working on it.
What I posted was just a rework of the given Link that said (Parental Bond is prettx much done) and added the half damage on the second hit.

We are currently working on getting all those exceptions done. (As far as we can find Information about them)
 
1,224
Posts
10
Years
Have you seen the specifics of how Parental Bond works? It's way complicated, and there's a lot of basic stuff in the engine that would need to be altered to make it work properly. For example, there's currently no distinction between effects that occur after each hit and effects that occur after all hits, but Pluck/SmellingSalt occur after all of them while Power-Up Punch and the like occur per hit. Present only hits once if it heals the first time, and definitely done damage the second time if it hurts the first time (I don't know if it's the same amount of damage, or just "not heal"). And so on.

I think that fact is an indicator that certain move effects (like Dragon Tail, Pluck, etc) need to be coded in as battler effects instead, and testing those effects can be used later in the code instead of right after the move is used. For instance, Dragon Tail would be be set as true when moved, but the switching out effect would not be tested until towards the end of pbProcessMoveAgainstTarget. It seems like Parental Bond serves as a good indicator of where this distinction in move effects should lie.

To be more clear, I think the Parental Bond code (how I have it, currently) serves it's purpose, but rather than changing it's code, it shows that the things that need to be changed are just how some of the moves and effects function around it.
 

DeKay

Mega Evolved
22
Posts
9
Years
  • Seen Oct 11, 2015
I was working on Unburden

PokeBattle_Battler
Code:
#in pbInitEffects 
@effects[PBEffects::ItemLost] = (self.item != 0) ? 1 : 0
#if else statement necessary to fix not activating if item was lost on same turn as switch in.
Code:
#in pbSpeed 
#I put this before the Unburden Ability (should maybe be moved) 
@effects[PBEffects::ItemLost] = 1 if self.item != 0 && @effects[PBEffects::ItemLost] != 2
@effects[PBEffects::ItemLost] = 2 if self.item == 0 && @effects[PBEffects::ItemLost] == 1
Code:
#in pbSpeed
if self.hasWorkingAbility(:UNBURDEN) && @effects[PBEffects::ItemLost] == 2 
  speed=(speed*2).floor 
end
Let me know what you think and where I should move the Item check to. (It probably needs to be moved into the Move section because right now it wouldn't set the effect to 2 if you get an item and lose it in the same round.)
I made the Item check because I didn't want to edit every single move/ability/item use just for Unburden.
I also thought it might be useful for something later on.
(If there is something that does this already. let me know)

Also.. why is the move claim empty and why does it include moves that are in the game already?
 
Last edited:

KillerMapper

Helix Follower
200
Posts
9
Years
I was playing OR when I remembered something : in gen 6 games your pokémons earn XP when you catch a wild pokémon. Maybe it should be included in PE too, with a setting for enabling or disabling it (like the exp reward with the gen 5 mechanism which can be enabled in the settings).
 

Radical Raptr

#BAMFPokemonNerd
1,121
Posts
13
Years
Along with that, something else that should be added is when a trainer asks for a trade, instead of opening your party, it opens your PC and lets you choose from any pokemon in your party or PC

=====
Edit
=====

Here are all the Mega Stones added to the item file
Spoiler:


They are after the 3 new items added in by the project.
They are in order as they show up in the bag slot in-game (which is not in alphabetical order for some reason)
Everything is as it should be, except that Aerodactyl has too long a name to fit in the description, so instead of saying:
"...and this stone will enable it..."
it reads
"...and the stone will enable it..."

Finally, here are all the Mega Stones x2 sized and labelled correctly

Edit #2
Going back a few pages to page #13, you will find the additional Mega Evolution information needed to be put into the script files, however with the new additions of the ORAS Megas, I found that the script to allow the mega pokemon to keep their Mega Stones instead of losing them to certain moves was not complete.

So, after the additions added by Lucidious89 and reposted by Worldslayer608:

go to the PokeBattle_Battle section in the scripts
at about line 634 paste

Spoiler:
 
Last edited:

DeKay

Mega Evolved
22
Posts
9
Years
  • Seen Oct 11, 2015
In the new Scripts file is a little mistake (2 actually).

First one makes it crash when trying to run.
Go to PokeBattle_MoveEffects Line 3962 and replace
Code:
elsif pbRandom(100)<30
with
Code:
when pbRandom(100)<30
Second one messes up the priority of Stall and Slow Items in some cases.
In PokeBattle_Battle at line 1237 replace
Code:
            elsif slowitem[temp[i]] #Check for slowing items
              cmp=(slowitem[temp[i-1]]) ? 0 : 1
            elsif stall[temp[i]] #Check for stall
              cmp=(stall[temp[i-1]]) ? 0 : 1
            elsif slowitem[temp[i-1]] #We will still miss out on the fact that slowitem should make slower than stall - which might not happen. (also shouldn't we put stall and slowitem BEHIND speedcheck? - not sure about that
              cmp=-1
            elsif stall[temp[i-1]] #This is a suggestion on how to fix the sometimes not activating part - how do we get the quickclaw check in again?
              cmp=-1
with
Code:
            elsif slowitem[temp[i]] #Check for slowing items
              cmp=(slowitem[temp[i-1]]) ? 0 : 1   #Ranks same if enemy has slowitem as well - ranks lower if not
            elsif slowitem[temp[i-1]] #Checking for enemy slow items
              cmp=-1
            elsif stall[temp[i]] #Check for stall
              cmp=(stall[temp[i-1]]) ? 0 : 1      #Ranks same if enemy has stall as well - ranks lower if not        
            elsif stall[temp[i-1]] #Checking for enemy stall
              cmp=-1
 
Last edited:
1,224
Posts
10
Years
If anyone would like to help test things, I've made a list of what is done but needs testing.

The list, as well as the current PBS and script file are located right here
 
423
Posts
13
Years
  • Age 37
  • Seen Aug 31, 2023
moves.txt has an error on line 577 move type is FLYTING instead of FLYING
also 592 Noble Roar doesnt seam complete whole bunch of move code missing
there the only errors that stop it compiling though
 
Last edited:

AmethystRain

pixie-powered judgment!
253
Posts
12
Years
  • Seen Nov 28, 2022
Oh, this thing really kicked into gear. Mej redirected me here; I'm pretty bad at keeping up with stuff around here though... I can probably contribute at least a little bit at some point though since we've had some things done for a while, like Stance Change/King's Shield... Seems like I've been holding out on you all, sorry.
I'm not in a place to do it right now, but I'll poke through the update later and see what I can offer.

I did notice there's nothing suggested for Inkay, so I'll throw what we did for Reborn out there-- It's a bit off-kilter, but then so is Malamar, right? In Reborn, Inkay will fail to evolve unless the evolution is canceled with the B Button, in which case it successfully evolves. I can provide the code for this if you guys decide this is an approach you want to take.
 
Back
Top