Compare commits

...

1419 Commits

Author SHA1 Message Date
JappaWakka
aed2bec9a8 Loamy Soil should not have snow on it 2025-04-06 11:22:35 +02:00
JappaWakka
57e7eb2935 Attacks fail if PP is 0 before subtraction 2025-04-06 10:42:13 +02:00
JappaWakka
38c0d9368f Fix GM Moves sharing properties between PkMn (PP) 2025-04-06 10:20:00 +02:00
JappaWakka
297821dfd7 Fix incorrect Battlemenu "Battle" token reference 2025-04-06 10:18:53 +02:00
JappaWakka
e83a77d23f Fix Main Menu GM assets load from options actually
it didn't do so before
2025-04-04 14:26:52 +02:00
JappaWakka
de6a9fd411 Fix gamemode custom music not reloading/replacing 2025-04-04 14:26:01 +02:00
JappaWakka
bdd9761d53 Adjust space width one more time and tweak screens 2025-03-31 19:13:31 +02:00
JappaWakka
e7c3281a34 Show correct location name in habitat dex 2025-03-31 19:12:53 +02:00
JappaWakka
a3e44cd510 Fix OT & ID No. usage to make more sense 2025-03-28 18:48:06 +01:00
JappaWakka
6eff647b8f Fix Main Menu GameMode assets load from options...
When clicking on a save profile while in the options submenu, the gamemode wasn't loaded immediately
2025-03-28 18:37:01 +01:00
JappaWakka
f9949ae6d0 Make space character wider to improve readability 2025-03-28 18:34:57 +01:00
JappaWakka
c002a20453 Fix trap ability textbox close delay in battlemenu 2025-03-28 18:33:08 +01:00
JappaWakka
17c559d723 Forgot a thing 2025-03-28 14:32:35 +01:00
JappaWakka
dab71b95f7 Some better catchmethod and catchlocation grabbing 2025-03-28 14:32:03 +01:00
JappaWakka
e6c32dc8a1 Grab correct localized map name for catchlocation 2025-03-28 14:07:27 +01:00
JappaWakka
8ec0e71675 Translations update 2025-03-28 12:04:57 +01:00
Jasper Speelman
a146dde118
Update Tokens_ptbr.dat
Added save screen and missing game interactions as well as correcting the receiving of the Pokéballs on the apricorn screen

Signed-off-by: Jasper Speelman <jjlspeelman@outlook.com>
2025-03-27 02:15:34 +01:00
JappaWakka
190eb2bae0 Add type icons to project 2025-03-25 10:17:07 +01:00
JappaWakka
87937a371d Polish wip, tokens fixes, italian type icons 2025-03-25 10:14:18 +01:00
JappaWakka
bfa8e2cef7 Fixed a space in misdreavus's dex entry 2025-03-24 17:37:23 +01:00
JappaWakka
4c20805d75 Reload the tokens a little more often...
in the main menu so that the correct location name immediately shows up on gamemode saves.
2025-03-23 16:03:58 +01:00
JappaWakka
071301432b Make Save Screen Localizable 2025-03-23 16:02:46 +01:00
JappaWakka
1aed676e6b Fix unneccesary clog for pokeinteraction icons 2025-03-22 13:30:33 +01:00
JappaWakka
43528154c4 Update and improve Fonts (mainly for accent chars) 2025-03-22 13:29:10 +01:00
JappaWakka
6509fe1cb0 Two Brazilian Portuguese tokens 2025-03-20 17:40:22 +01:00
JappaWakka
af89b308c7 Fixed some buttons and bumpers/triggers...
Back/Select instead of Y button as Y button doesn't work and Triggers instead of Bumpers to make sure the chat box doesn't open during Voltorb Flip or PC Box switching
2025-03-20 17:40:01 +01:00
JappaWakka
1c9effb03f Handing over items is localizable 2025-03-17 19:15:37 +01:00
JappaWakka
fe6098fc7b Properly fix the BattleAnim Memory Leak now...
I didn't do it right the first time lol
2025-03-17 17:48:54 +01:00
JappaWakka
3b298ba2b5 Dutch token tweak 2025-03-17 17:34:30 +01:00
JappaWakka
62fbec7c43 Don't log music missing when checking night music 2025-03-17 17:34:20 +01:00
JappaWakka
5012313ca8 Fix Battle Animation Memory Leak 2025-03-17 17:33:50 +01:00
JappaWakka
cff7dd2083 Fix required exp. number text position 2025-03-15 10:21:31 +01:00
JappaWakka
5fd6ca1e38 Fix Battle Box crash when taking item 2025-03-15 10:07:21 +01:00
JappaWakka
fcff6fe74e Removed some duplicate/unused tokens 2025-03-14 15:45:04 +01:00
JappaWakka
ba3c3c7f23 Remove duplicate yes/no tokens 2025-03-14 15:24:02 +01:00
JappaWakka
9be1e7838b Clean up trading screen a little 2025-02-28 11:03:36 +01:00
JappaWakka
a7bb36f10c Fix some music memory leaks 2025-02-28 11:01:53 +01:00
JappaWakka
2400d68fb6 Fixes for Selling Items in TradeScreen...
The base price of a sellable item can now be set as well, even if an item is not in stock.
2025-02-22 19:00:06 +01:00
JappaWakka
d01af0ad9d Prevent crash if clearing nonexistent scriptdelay 2025-02-22 12:41:38 +01:00
JappaWakka
0b82f53032 Spanish fixes 2025-02-21 21:02:39 +01:00
JappaWakka
831af723f6 Remove unused descriptions 2025-02-21 20:47:09 +01:00
JappaWakka
306a9894fc Spanish fixes by Matiarguello 2025-02-21 20:46:41 +01:00
JappaWakka
407cf76546 Token tweak 2025-02-21 15:45:36 +01:00
Jasper Speelman
a759fc9cb0
Merge pull request from jianmingyong/fix-inventory-overworld-bug
Fix the overworld rendering when inventory is opened.
2025-02-21 15:38:42 +01:00
JappaWakka
253e4b50f3 Failsave for money command 2025-02-21 15:28:41 +01:00
Yong Jian Ming
fb368e0f2d
Fix the overworld rendering when inventory is opened. 2025-02-21 22:27:01 +08:00
Jasper Speelman
4d5173fab4
Merge pull request from maxrigout/master
added night theme for wild battles
2025-02-21 12:42:19 +01:00
Max Rigout
d9da71c812 cleanup 2025-02-20 16:43:31 -05:00
Max Rigout
e6d78d1d3b added flexibility to the night theme system, removed metadata from the night themes, added night themes to the project files 2025-02-20 16:40:55 -05:00
Max Rigout
644d2c64ef
Merge branch 'P3D-Legacy:master' into master 2025-02-20 14:34:10 -05:00
Max Rigout
d7735f33ba fixed bug with kanto wild battle music at night 2025-02-20 12:50:11 -05:00
Max Rigout
396f2b37ee updated IsNight definition so that it considers Evening and Night 2025-02-20 12:27:30 -05:00
JappaWakka
20ce172674 Update Spanish 2025-02-20 10:23:24 +01:00
JappaWakka
9fce336574 Make some room for summaryscreen translations 2025-02-19 18:44:17 +01:00
JappaWakka
8b560a0dcc Fix Attack.GetDamage() for GM Moves 2025-02-19 17:45:31 +01:00
JappaWakka
438fff5e54 Tokens 2025-02-19 17:45:05 +01:00
Max Rigout
7a920335d4 added night theme for wild battles 2025-02-18 16:55:56 -05:00
JappaWakka
cee683452e Pokémon Properties translatable
* Summary Screen
* Catch Method & Location
* Ability Names & Descriptions
2025-02-16 10:51:54 +01:00
JappaWakka
d9b7e2258b Revert "Use [ ] instead of < > for pkmn catchinfo tokens.."
This reverts commit 2fa95df3e7dc573c925cd02c3a7b96fb07b924dc.
2025-02-15 19:10:09 +01:00
JappaWakka
2fa95df3e7 Use [ ] instead of < > for pkmn catchinfo tokens..
If you use <system.token()> for the CatchMethod and CatchLocation values, they would get permanently replaced with the token values but by using [system.token()] you can make them change based on the current language even when you change.
2025-02-15 18:53:52 +01:00
JappaWakka
b6f19fb764 Missing/Fixed Option Screen tokens 2025-02-15 16:08:53 +01:00
JappaWakka
742c43ac4d Gamepad Control tokens + Remap some Buttons
Y button doesn't work so sometimes Y and X get swapped and the one that would be Y gets mapped to Select
2025-02-15 15:49:06 +01:00
JappaWakka
1fd932d43f Forgot some tokens 2025-02-15 14:00:38 +01:00
JappaWakka
d529b58409 More PkMn Selection translatability 2025-02-15 13:48:22 +01:00
JappaWakka
b50af8744b PkMn Selection & Battle Menu translatable 2025-02-15 13:30:33 +01:00
JappaWakka
2fd98316fe Fix PacksMenu sound volume and freeze 2025-02-15 11:34:02 +01:00
JappaWakka
01a2487839 Made PokéBalls not holdable 2025-02-13 10:06:30 +01:00
JappaWakka
e03827880e Fix crash when giving items 2025-02-13 10:06:18 +01:00
JappaWakka
574a3eb8eb Fix for pokédex descriptions and species 2025-02-13 09:50:50 +01:00
JappaWakka
206dcc5dae Johto Town Map fix 2025-02-13 09:50:16 +01:00
JappaWakka
cb0a693a11 Token Fixes 2025-02-13 09:49:36 +01:00
JappaWakka
8f5c040441 Split Nidoran Female and Nidoran Male tokens 2025-02-12 18:58:33 +01:00
JappaWakka
e62791ca05 Did the Pokédex entries and species the right way 2025-02-12 15:51:12 +01:00
JappaWakka
52bd699e34 Pokédex entries and species are now translatable 2025-02-12 13:30:45 +01:00
JappaWakka
995f46d716 Scroll Pokédex through seen/caught pkmn...
It is now possible to go to the next seen/caught pokémon in the pokédex from the info screen instead of being unable to if there's an unseen pokémon between the current and next seen/caught one
2025-02-12 11:24:38 +01:00
JappaWakka
3d4ccb5e58 Use some unused tokens + some new 2025-02-12 11:22:06 +01:00
JappaWakka
491080871f Dutch token tweaks 2025-02-11 17:29:37 +01:00
JappaWakka
28f87c422b A button on title screen auto adjusts X position 2025-02-11 14:18:30 +01:00
JappaWakka
bf4a94927a Move language menu scroll index to current...
language if the current language has to be scrolled to when opening the language menu
2025-02-11 13:50:30 +01:00
JappaWakka
0083f5a10c Include controller in summary screen hint 2025-02-11 13:42:47 +01:00
JappaWakka
19d01ed0df Fix crash in party screen 2025-02-11 13:41:52 +01:00
JappaWakka
41278e06ab Make pokédex search Select instead of Y...
and adjust the hint for searching
2025-02-11 13:41:36 +01:00
JappaWakka
f79ccb2a20 Fix Exp. All state not loaded when load game 2025-02-11 11:21:53 +01:00
JappaWakka
f4f8a63d93 Make paralysis actually fail moves too 2025-02-11 11:01:37 +01:00
JappaWakka
96276520e3 Fix Self Destruct 2025-02-11 11:00:49 +01:00
JappaWakka
96984213b1 Fix Infatuation....
Moves that were supposed to fail because of infatuation didn't get the fail function triggered
2025-02-11 10:58:04 +01:00
JappaWakka
b1c09a3ebb Reset Bad Poison counter when cure status 2025-02-11 09:52:37 +01:00
JappaWakka
7ee85091f2 Dutch Type Icons + ptBr tokens 2025-02-08 13:21:42 +01:00
JappaWakka
f1fb11fa1f A whole bunch of tokens + add Tokens_de to project 2025-02-07 17:16:46 +01:00
JappaWakka
e66bf6ae2a Add german types + fix ??? icon 2025-02-06 19:19:58 +01:00
JappaWakka
82604aa024 Add the new Type image to the project 2025-02-05 20:16:53 +01:00
JappaWakka
26e2f2d279 Rename Types icon to be localizable 2025-02-05 19:37:18 +01:00
JappaWakka
2cc74f7631 German tokens update + small fr ptBr fixes 2025-02-05 17:15:35 +01:00
JappaWakka
b7e6ff3381 Also update french and brazilian portuguese 2025-02-05 15:55:00 +01:00
JappaWakka
359afde27d Add some missing options menu tokens 2025-02-04 12:52:15 +01:00
JappaWakka
885f7f80d6 Reset textcolor upon game exit, update Scr.Library 2025-02-03 17:38:04 +01:00
JappaWakka
3a0887023b Use correct effectiveness for attacking type 2025-02-03 14:52:09 +01:00
JappaWakka
940059013c Last move index is remembered in battle menu 2025-02-03 14:43:50 +01:00
JappaWakka
ef770de841 Full Heal should cure confusion for trainer too 2025-02-03 14:40:55 +01:00
JappaWakka
6a4615f1e1 GM Attack CopyMove needs to copy Type too 2025-02-01 18:07:07 +01:00
JappaWakka
540186d2ea Jump Ledge sound plays later depending on speed 2025-02-01 18:05:38 +01:00
JappaWakka
1cdb83545e Controller Left Joystick is now more reliable
The direction that is pressed is now calculated based on the angle of the joystick, which is more reliable than using Buttons.LeftThumbstickUp and such.
2025-02-01 11:33:58 +01:00
JappaWakka
74f03692d2 Remove duplicate ping sounds for controller...
in the Main Menu. For some reason, pressing B on the gamepad played the select sound twice.
2025-02-01 11:29:37 +01:00
JappaWakka
68a3317536 Fix select sound being played too many times...
in the Pokédex screen when exiting a selectmenu
2025-02-01 09:35:24 +01:00
JappaWakka
8e0372da30 Fix Metronome and Mirror Move Issues 2025-01-31 16:13:26 +01:00
JappaWakka
98ee3d48eb Implement metronome-like effect for GM moves 2025-01-31 14:27:17 +01:00
JappaWakka
e9a8a89856 Fix issue trainer and wild at same time...
When a wild and trainer encounter happen at the same time, they no longer cancel each other out (hopefully)
2025-01-31 13:13:45 +01:00
JappaWakka
1db6f81cb3 Check if attack args not "" before CInt() 2025-01-30 09:51:59 +01:00
JappaWakka
aa7dbc3f20 Don't save RunToggled as true if in hold mode 2025-01-29 09:26:18 +01:00
JappaWakka
b85e6162d9 Make the game remember if running was toggled 2025-01-28 11:55:52 +01:00
JappaWakka
84a925b120 Added hint how to switch Pokémon summary page 2025-01-28 11:51:07 +01:00
JappaWakka
37cc3a7556 Fix some pokédex constructs and add 2 new ones...
Also update the scriptlibrary for dopokedex.
`<Pokedex.PokemonCaught(ID)>` Returns if the specified Pokémon has been caught.
`<Pokedex.PokemonSee(ID)>` Returns if the specified Pokémon has been seen.
2025-01-28 11:17:53 +01:00
JappaWakka
0022bf7455 Fix crash if selecting disabled move 2025-01-28 09:10:27 +01:00
JappaWakka
568d7d62f3 If standing still return don't return bobbing...
A user reported the camera shaking when they pressed the run key while standing still. The cause of this was the difference in amplitude between head bobbing while walking and running. So I made it return 0 always if you're standing still, only returning the bobbing when moving.
2025-01-27 18:34:49 +01:00
JappaWakka
b3f8811503 Enable D-Pad in First Person Mode 2025-01-27 18:32:03 +01:00
JappaWakka
c7c5155c80 Optimize the music stopping before battle music 2025-01-25 19:11:49 +01:00
JappaWakka
a13b0c50ae Fixed crash when using last item in inventory 2025-01-25 14:10:20 +01:00
JappaWakka
2e0110ae40 Fixed item name ~ not replaced in detail screen 2025-01-25 14:10:04 +01:00
JappaWakka
536874888a Reset Camera Focus after blackout. 2025-01-25 13:42:39 +01:00
JappaWakka
8d9a8e63f2 Added translations for new tokens 2025-01-25 13:17:49 +01:00
JappaWakka
7dfdf7eebd Add apostrophy to king's rock and king's shield 2025-01-25 11:54:39 +01:00
JappaWakka
df0e3ad85c Prevent use pkmn or move items if no pkmn in party 2025-01-25 11:20:05 +01:00
JappaWakka
736af58545 Arena Trap and similar abilities don't use turn...
when trying to run away.
Also added some french tokens I forgot to add.
2025-01-25 10:45:43 +01:00
JappaWakka
57803d7266 Make the second back key bind to backspace 2025-01-25 09:46:20 +01:00
JappaWakka
f33eb9b3cd Add money symbol to save screen 2025-01-25 09:33:22 +01:00
JappaWakka
83c6cc7027 Set NPC collision to true if no tag 2025-01-25 09:32:55 +01:00
JappaWakka
3a47a87735 Make the popup icon be in the correct spot 2025-01-24 14:49:45 +01:00
JappaWakka
69f70919b6 Make NotificationPopup work at different scales 2025-01-24 14:05:52 +01:00
JappaWakka
021d79d08d Update some german tokens 2025-01-23 10:20:11 +01:00
JappaWakka
e132a2500c Translated some attack names into Dutch 2025-01-20 17:40:51 +01:00
JappaWakka
75f9914bb4 Make models not scale based on the pokédex size 2025-01-18 13:34:48 +01:00
JappaWakka
7214556dda Fix battle model offsets 2025-01-18 13:33:38 +01:00
Jasper Speelman
4621ecbb12
Merge pull request from jianmingyong/model_importer_fix
Use custom shader for 3d model
2025-01-18 13:04:40 +01:00
JappaWakka
666fbf7007 Fix dutch contentpack menu tokens 2025-01-18 11:22:17 +01:00
Yong Jian Ming
f9d1076086
Additional Fixes 2025-01-18 17:35:07 +08:00
Yong Jian Ming
c6e101bd3f
Use custom shader for 3d model. 2025-01-17 23:17:38 +08:00
JappaWakka
d2ef0e708d Make it possible for NPCs to have no collision 2025-01-16 15:46:16 +01:00
JappaWakka
7e37e1c382 Fix Evo Conditions for Driffloon & Minccino 2025-01-10 11:19:35 +01:00
JappaWakka
44ce38ccef Noticed I forgot a token 2025-01-06 18:31:47 +01:00
JappaWakka
aba304e5d4 Add Safari Balls & optional Steps counter to menu 2024-12-29 10:28:08 +01:00
JappaWakka
2e2af670e3 Possibly prevent a future crash 2024-12-29 10:26:53 +01:00
JappaWakka
a8dd94a7e6 Made some GUI stuff scale with interfacescale
* Trainer Card
* Save Screen
* MessageBox (like when your files are invalid)
2024-12-29 10:26:15 +01:00
JappaWakka
8b7363364c Added missing option tokens (french not yet) 2024-12-28 19:30:04 +01:00
JappaWakka
9b942ab977 Expanded @Script.Delay with ItemCount DelayType
Also made each Script Delay be defined with an identifier so you can have multiple delays running at the same time!

* arg0 = Identifier
* arg1 = Script Path
* arg2 = Delay Type (Steps, ItemCount)
// Steps
* arg3 = Amount of steps
* arg4 = Whether to display the remaining steps in the start menu
//ItemCount
* arg3 = Item ID
* arg4 = Compare Type (Equal, Below, EqualOrBelow, Above, EqualOrAbove)
* arg5 = Item Amount

With the ItemCount type you can run a script when you do or do not have a certain amount of items
2024-12-28 19:26:01 +01:00
JappaWakka
d49217ff95 Fix unnecessary space in screenshot token 2024-12-27 12:10:34 +01:00
JappaWakka
e74ff7cc50 Don't scale randomness of level 0 by difficulty 2024-12-25 11:18:29 +01:00
JappaWakka
3a4535dd57 Change Trainer AI level values to be less random
* 0 = bigger chance to choose a random move
* 1 = smaller chance to choose a random move
* 2 = can switch pokémon to better matchup
2024-12-25 10:54:03 +01:00
JappaWakka
d70887c319 Update for brazilian portugeuse translation by DMB 2024-12-20 16:08:08 +01:00
JappaWakka
369cd8a187 Make Keyboard key names translatable
For the <system.button()> construct
2024-12-20 11:34:34 +01:00
JappaWakka
13a47b5276 Fixed bug where construct didn't return anything
Forgot to add Return to ReturnBoolean() for <Level.LoadOffsetMaps>
2024-12-16 16:32:09 +01:00
JappaWakka
a70c4e39dd Give the other vs intro colors names as well 2024-12-14 13:31:01 +01:00
JappaWakka
e5c979b9ac Dutch token correction 2024-12-10 14:06:55 +01:00
JappaWakka
aef9bf78f7 Make Trainer Card screen translatable & fix token 2024-12-09 19:17:51 +01:00
JappaWakka
a5550404e0 Small tweak to dutch token 2024-12-09 18:54:29 +01:00
JappaWakka
787cd5358e Added and fixed tokens for main menu, inventory...
... and the title of the join server screen.
2024-12-09 18:46:02 +01:00
JappaWakka
052f32a5de Reload apply/cancel buttons too on language select 2024-12-09 17:16:27 +01:00
JappaWakka
5a546db127 Reset windowsize x/y if they're 0 when saving 2024-12-09 17:15:23 +01:00
JappaWakka
1812c4914d Location in the save menu shows localized value 2024-12-08 13:59:05 +01:00
JappaWakka
a3277e47e6 Forgot to fix the german file 2024-12-05 19:02:30 +01:00
JappaWakka
a68dd860a5 Missing tokens added and token errors fixed 2024-12-05 18:47:02 +01:00
darkfire006
e2a3be2096 fix thaw effects of moves 2024-11-30 23:51:54 -06:00
JappaWakka
a049998b44 Put Rotom forms in the order of their icon sprites 2024-11-30 11:46:54 +01:00
JappaWakka
2640ec070f Make it possible to scale + rotated pkmn models
PokeModelScale|Value - Scale all Pokémon models in battle by value (sng), default  = 1
PokeModelRotation|xRot,zRot - Rotate all Pokémon models by the specified radians. Y rotation is dynamically controlled by the game so I didn't want to mess with that.
2024-11-30 11:45:59 +01:00
JappaWakka
0415df9ee3 Fix Sleep Talk & Snore not working while asleep 2024-11-30 11:39:21 +01:00
JappaWakka
4edb20faae Trainers don't walk through NPCs or objects...
....unless you want them to which you can accomplish by adding "|0" to the end of the AdditionalValue
2024-11-10 13:57:59 +01:00
JappaWakka
c19a7b06cd Scriptlibrary tweaks 2024-11-03 19:36:07 +01:00
JappaWakka
66de1ce8c9 Fix walkthrough objects overriding collision...
...of solid objects when it comes to the movement of the player.
2024-10-10 09:58:35 +02:00
JappaWakka
15dd897e9a Fix Straight NPC movement better 2024-09-28 17:05:03 +02:00
JappaWakka
3649717883 Tweak NPC interaction time frame 2024-09-28 11:12:38 +02:00
JappaWakka
e7153fdc4f Fixed Pause Screen quit confirmation text position 2024-09-28 10:07:31 +02:00
JappaWakka
9522656df9 Added <Player.LastRestPlace> construct
Returns the last rest location the player has visited in the following format: "map.dat,x,y,z".
2024-09-28 10:06:55 +02:00
JappaWakka
d02763959f Fix Moving NPC bugs see desc.
Fixed Straight Moving NPC from stopping if the player stands next to it.
Hopefully fixed the bug where if you time it right you could walk into the path of a moving NPC.
2024-09-26 19:44:32 +02:00
JappaWakka
4fca486fab Add RandomFollowItemPickup GameRule
This controls the random item pickup for all follower pokémon
2024-09-20 19:33:19 +02:00
JappaWakka
10cc749328 Add @NPC.SetScale(npcID,X,Y,Z)
Works the same way as @Entity.SetScale()
2024-09-20 10:55:06 +02:00
JappaWakka
3f6f8a57f2 Disable shade on backdrops when lighting disabled 2024-09-18 13:59:00 +02:00
JappaWakka
a51f0dc27a Disable shaders when lighting is disabled 2024-09-18 13:57:40 +02:00
JappaWakka
db6d04174f Make shaders also visible on offsetmaps 2024-09-17 20:39:33 +02:00
JappaWakka
221bdd6b9c Models are now affected by shader objects 2024-09-17 19:11:08 +02:00
JappaWakka
2b1c2a9145 Make PokeInteract show the right icons 2024-09-15 10:36:45 +02:00
JappaWakka
b6f356a6ba Give catching charm to player at vermilion docks 2024-09-14 15:37:35 +02:00
JappaWakka
27e940f117 Also remove safari balls when blacked out 2024-09-14 14:36:32 +02:00
JappaWakka
9739e6eecd Fix PokeInteract Parsing Crash 2024-09-14 14:35:53 +02:00
JappaWakka
11f8f9cc5c Work in progress French tokens by Hainy 2024-09-02 16:34:17 +02:00
JappaWakka
8fd32c031b Made it possible for GameMode moves to flinch 2024-09-02 16:31:04 +02:00
JappaWakka
d94bb95d0c Update Brazilian Portuguese 2024-08-31 20:50:29 +02:00
JappaWakka
254c829b61 Add Exp. All to Project 2024-08-31 20:50:10 +02:00
JappaWakka
04ae735b18 Added some .ToLower to Player savedata readings 2024-08-31 16:33:56 +02:00
JappaWakka
2c9a1ebc61 Implement Exp. All Key Item 2024-08-31 16:32:35 +02:00
JappaWakka
16a88c1c22 Make it possible to exclude poke file from PokéDex 2024-08-31 14:42:25 +02:00
JappaWakka
eaa0c8d2c3 Make it possible to use pkmn data when spawning 2024-08-26 13:19:15 +02:00
darkfire006
a96c13f123 Add trainers to v road that show up post E4 2024-08-25 17:53:16 -05:00
JappaWakka
79b23efe92 Fixed incorrect DecSeparator thing in GamemodeItem 2024-08-25 20:05:50 +02:00
JappaWakka
e81237bd64 Support for forms in cries and interactions 2024-08-25 18:32:06 +02:00
JappaWakka
ebbe37413e Make it possible to add constructs to interactions 2024-08-25 18:09:17 +02:00
JappaWakka
3cf7687348 Add CatchingCharm to project 2024-08-24 19:24:53 +02:00
JappaWakka
8fa1f76cf4 Aide or Oak give the Catching Charm with Sevii Dex 2024-08-24 16:26:35 +02:00
JappaWakka
58d9acc96f Implement Catching Charm, fix Exp. Charm 2024-08-24 16:06:24 +02:00
JappaWakka
d3ad439226 Map Fixes 2024-08-24 15:39:53 +02:00
JappaWakka
eeb0ba84c2 Fix Warp 2024-08-24 15:35:48 +02:00
JappaWakka
7188108444 Added Alph Unown Dex scientist + house update 2024-08-24 15:33:33 +02:00
JappaWakka
de15767ce3 Fixed some typos and extra spaces 2024-08-24 15:32:11 +02:00
JappaWakka
1c3e30d59e Implemented Exp. Charm 2024-08-24 15:31:51 +02:00
JappaWakka
90b13caf94 .poke level and pokeID can contain constructs 2024-08-23 19:10:58 +02:00
JappaWakka
73fc0bc916 Fix BattleMenu highlighted move after Transform 2024-08-23 10:19:27 +02:00
JappaWakka
6f450b12e6 Fix issues when using Transform while transformed 2024-08-23 10:18:21 +02:00
JappaWakka
6759aba500 Make player face correct direction for npc insight 2024-08-20 12:30:50 +02:00
JappaWakka
0738507791 Disable backwardsmovekey in first person 2024-08-20 12:30:14 +02:00
JappaWakka
1e0fb98359 Fix wild encounters skipping trainer battles 2024-08-20 12:29:11 +02:00
JappaWakka
0bf698e9c2 Properly align bottom-most options buttons 2024-08-17 15:37:02 +02:00
JappaWakka
aae35a8724 Fixed Main Menu crash 2024-08-17 15:36:22 +02:00
JappaWakka
93f8d63aaf ModelPath can be parsed for constructs 2024-08-14 14:47:44 +02:00
JappaWakka
e065eb575a Added <Level.LoadOffsetMaps>
(Bool) Returns if OffsetMaps are being loaded (based on the Offset Map Quality option in the Options Menu).
2024-08-14 14:10:18 +02:00
JappaWakka
f5feba5e99 Fix abilities etc. activating before opp switched 2024-08-12 15:15:53 +02:00
JappaWakka
ad49e7af7b Changed SandboxSwitch to F3+O (B was boundingbox) 2024-08-10 11:07:55 +02:00
JappaWakka
90464e6530 Fix the typo in Dutch too 2024-08-10 10:46:06 +02:00
JappaWakka
da7b534aa0 Partially update German, include spanish, fix typo 2024-08-10 10:43:33 +02:00
JappaWakka
89b111536f Add brazilian portuguese tokens by DMB/Dark Mario 2024-08-10 10:42:48 +02:00
JappaWakka
cbe568a6f8 Changed SandboxSwitch to F3+B 2024-08-10 09:20:53 +02:00
JappaWakka
b802531748 Added key to switch SandboxMode on and off
the key to press is Right Ctrl
2024-08-09 17:28:42 +02:00
JappaWakka
27bd072946 Fixed the Storage System filter issues 2024-08-09 17:11:56 +02:00
JappaWakka
1c6f8cf00f Fix incorrect old stats when leveling up 2024-08-07 11:32:13 +02:00
JappaWakka
9fae5d2dfc Update Victory Road textures 2024-07-31 19:23:46 +02:00
JappaWakka
689ce95c49 OW PkMn spawns close after press R to reload LvL 2024-07-31 18:36:06 +02:00
JappaWakka
97387050c7 Fix transformed pkmn level up wrong stats & icon 2024-07-29 10:35:05 +02:00
JappaWakka
a0bcce2809 Fix Level Multiplier (decimal sep bug) 2024-07-25 10:55:53 +02:00
JappaWakka
6908c4a72d Fix battle intro music looping + command fix 2024-07-25 10:43:16 +02:00
JappaWakka
46cb18974d Fix warp sound for 2 arguments in command 2024-07-21 14:48:55 +02:00
Jasper Speelman
2e1418af8f
Merge pull request from HamtaroSama/master
Fix Rotom Wash Form Display Sprite
2024-07-19 20:31:06 +02:00
Daniel S. Billing
09d9c51aa1
Merge branch 'master' into master 2024-07-19 19:24:54 +02:00
JappaWakka
c2bb993a40 Prevent freeze if error in overworldpokemon cmd 2024-07-16 12:45:41 +02:00
JappaWakka
36ba9c6875 Added some missing commands to the scriptlibrary 2024-07-14 18:37:27 +02:00
JappaWakka
b53ee169e5 Added command @Player.RemoveItemData()
@Player.RemoveItemData(LevelPath,ItemIndex)
Makes the specified item index of the specified map spawn again after it has been found.
LevelPath (str) - Path to the map file (including .dat) relative to "Content\Maps\"
ItemIndex (int) - Index of the ItemObject on the map (first argument in the object's AdditionalValue)
2024-07-14 17:29:13 +02:00
JappaWakka
facfbc9f4e Stop walk anim when rival pushes you in new bark 2024-07-12 06:43:05 +02:00
darkfire006
f985bf5952 remove unused stairs 2024-07-07 23:07:08 -05:00
JappaWakka
fef6ff28df Fix WarpBlock 2024-07-05 11:16:49 +02:00
JappaWakka
5c9faa6710 Remove unnecessary metadata from sfx 2024-07-05 11:12:04 +02:00
JappaWakka
15ee853001 Added additional Warp SFX, fixed HoleBlock + sfx 2024-07-05 11:11:33 +02:00
Pak Lam Ip
49ba9c9294
Update forms.dat
Made correction for Rotom Wash form displaying in team menu
2024-07-05 04:21:22 -04:00
Pak Lam Ip
6afb1fdd00
Update forms.dat
Made correction for Rotom Wash form displaying in team menu
2024-07-05 04:16:08 -04:00
darkfire006
7de8cb3973 switrch to holes 2024-07-05 01:22:18 -05:00
JappaWakka
549d313509 Added HoleBlock Entity
Additional Value
* MapPath,X,Y,Z,DropDistance,WarpTurns,[FallSpeed=1],[ValidAccessRotations]

ActionValue:
* MessageBulb Index + 1

DropDistance argument might be redundant if the camera doesn't follow the falling player
2024-07-04 19:45:27 +02:00
JappaWakka
6f41946e21 Added @Player.DoWalkAnimation(bool)
Enables or disables the player's walking animation when walking or during a @player.move command.
2024-07-04 19:43:05 +02:00
darkfire006
17c87d1b53 updated vroad to HGSS layout 2024-07-03 01:57:39 -05:00
darkfire006
a049abea81 add closed rocket gamecorner 2024-06-27 12:59:10 -05:00
darkfire006
3d52f4fa94 Fix TR trio scripts 2024-06-25 17:28:12 -05:00
JappaWakka
12a61f5dae More dutch move names 2024-06-22 10:36:01 +02:00
darkfire006
9578265fb5 add _alola in wild data 2024-06-20 09:03:30 -05:00
JappaWakka
5a0243644f More Dutch tokens 2024-06-20 11:17:20 +02:00
JappaWakka
7d80fda0b3 Fix Token error 2024-06-20 10:36:31 +02:00
JappaWakka
d87a6cf18d Dutch tokens update & English tokens fix 2024-06-17 19:51:36 +02:00
JappaWakka
1241a11611 Fix Full Screen screenshot corruption 2024-06-14 09:30:46 +02:00
JappaWakka
caf99db33f Fix BattleMenu wrong position 2024-06-14 09:30:20 +02:00
JappaWakka
d9b5b35006 Remove unused Options.dat property 2024-05-22 21:16:05 +02:00
JappaWakka
34fc3ffbbe Fix OnlyCaptureFirst GameRule's implementation 2024-05-22 19:23:48 +02:00
JappaWakka
afee85c4ac Add Level Multiplier 1.2 to the right gamerules 2024-05-22 19:00:00 +02:00
darkfire006
ee7c0e5b94 fix line wrap 2024-05-20 18:34:53 -05:00
JappaWakka
100ba59891 Update Natu & Xatu's Moveset to ORAS 2024-05-20 19:31:22 +02:00
JappaWakka
f22403795b Fix some NPC move, interact and animation issues
* NPCs with straight MovementType (and 2 or 3 frames) will now alternate animation frames instead of resetting after every step
* NPCs with walk or straight MovementTypes won't move into the player anymore when interacting with the NPC as they're about to walk
* NPCs with straight MovementType will now continue to walk in the direction they were heading before the player interacted with the NPC
* NPCs with walk MovementType won't walk into network players anymore
2024-05-20 13:48:45 +02:00
JappaWakka
25bcc154a2 Make ShinyRate & LevelMultiplier GameRules 2024-05-19 19:26:16 +02:00
JappaWakka
f346a32495 Split HardGameRules into Hard and SuperHard 2024-05-19 13:08:53 +02:00
JappaWakka
7ea152fbe5 Make it possible to remove pokegear phone/worldmap 2024-05-18 17:18:23 +02:00
JappaWakka
6c065abfdd Revert "Add model vertices to entity vertex count"
This reverts commit ce52888a0df5355aec14e4a06fcb01db371e9861.
2024-05-16 15:25:20 +02:00
JappaWakka
ce52888a0d Add model vertices to entity vertex count 2024-05-16 15:05:21 +02:00
JappaWakka
b48debe4e2 Prevent next song playing before fade done 2024-05-15 17:08:45 +02:00
JappaWakka
873411d40e Prevent Music from deleting playlistsong if fading 2024-05-15 17:03:42 +02:00
darkfire006
7c2ff10f33 fix wrong day care 2024-05-14 17:24:38 -05:00
JappaWakka
f4354a9922 Make it possible to check if pkmn can learn attack
@pokemon.select has an extra argument. If it is set to an attack ID, it will be visible which Pokémon can learn that move while selecting.

Added @Pokemon.CanLearnAttack(PartyIndex,AttackID)
Returns if the Pokémon can learn the specified move.
2024-05-14 11:02:47 +02:00
JappaWakka
14dd28290c Fix Music skipping intro and only playing intro 2024-05-13 19:00:20 +02:00
JappaWakka
3d7eb3bd66 Fix Attack CopyMove 2024-05-12 12:38:29 +02:00
JappaWakka
f2a9babcd7 Fix Camera bug 2024-05-10 19:06:20 +02:00
JappaWakka
813e939090 Fix Pause Screen 2024-05-10 18:55:42 +02:00
JappaWakka
8479bd0fc3 Added some more text replacements 2024-05-10 18:07:31 +02:00
JappaWakka
260cf6aa66 Improve Character Selection Screen 2024-05-10 18:06:30 +02:00
JappaWakka
72702a2c61 Fix Choosebox not working in NewNewGameScreen 2024-05-10 18:02:54 +02:00
JappaWakka
65fd7dc53e Draw fade before gui 2024-05-10 15:35:23 +02:00
JappaWakka
c3254073f3 Added High Jump Kick to Lopunny's learnset 2024-05-09 15:22:54 +02:00
JappaWakka
b8fcb31484 Revert "Fix battle frontier on kanto/johto world map"
This reverts commit 0d442e54ef390c249b780fc2e73846dad3a6bb77.
2024-05-09 15:13:57 +02:00
JappaWakka
0d442e54ef Fix battle frontier on kanto/johto world map 2024-05-09 13:18:33 +02:00
JappaWakka
2e43afbbc2 Made PokéGear user screen selectable with mouse 2024-05-06 13:34:57 +02:00
JappaWakka
60c1030659 Fix layout of Direct Trade Screen 2024-05-06 13:34:26 +02:00
JappaWakka
cbc09b8358 Prevent impossible CropStringToWidth freeze 2024-05-05 21:18:40 +02:00
JappaWakka
dad278e810 Fix Safari Zone sky area skybox 2024-05-05 18:13:40 +02:00
JappaWakka
4a16501926 Prevent BattleMenu from softlocking pvp battle...
...so that the BattleMenu can't be used until there are no more text messages displaying.
2024-05-05 15:13:15 +02:00
JappaWakka
eca6a70ed6 Added MaxVisibleVertices to debug display
Show how many of the maximum amount of vertices are actually being drawn (which only happens when they're visible)
2024-05-05 13:17:06 +02:00
JappaWakka
0fb05ba815 Update SafariZone PowerPlant Area 2024-05-05 10:52:21 +02:00
JappaWakka
e400c49d7d Fire Punch animation 2024-05-05 10:24:22 +02:00
JappaWakka
c2f3eeff22 Don't show textbox if not lost item after battle 2024-05-05 09:39:10 +02:00
JappaWakka
56e436d69e Remove battle screen resetting weather for safari 2024-05-05 09:19:13 +02:00
JappaWakka
f74f1212dd Fix nuget package sources 2024-05-02 16:09:19 +02:00
JappaWakka
cab4e66cea Fix Item Finder and hidden item fading issues 2024-05-02 15:10:11 +02:00
JappaWakka
9873f15aa5 Fix items lost if switch pokémon after knocked off 2024-05-01 13:26:29 +02:00
JappaWakka
1a7e08d361 Added "DisableMenus" map tag
When set to 1, prevents the player from opening the start menu or accessing the PokéGear.
2024-04-29 16:56:47 +02:00
JappaWakka
ee05af333c Added an exclamation mark at the end 2024-04-29 16:49:27 +02:00
JappaWakka
844bf81eb8 Changed the message for counter/mirror move fail 2024-04-27 17:30:08 +02:00
JappaWakka
4717d097e7 Fix Counter & Mirror Coat 2024-04-27 17:01:56 +02:00
JappaWakka
d5d291bdda Added @Player.QuitGame(doFade) command
Quits the game and goes back to the Main Menu (with optionally a fade out and in)
2024-04-26 09:51:59 +02:00
JappaWakka
6360c93368 Fix Nilllzz' dialogue 2024-04-26 09:32:17 +02:00
JappaWakka
9eb32c6b59 Fix Parasol Lady Mikaela 2024-04-25 19:52:05 +02:00
JappaWakka
0d36580015 Make <Pokedex.DexSeen(int)> include caught 2024-04-24 19:12:57 +02:00
JappaWakka
2d65ce8ce1 Hopefully fix the regionweather changing later 2024-04-24 18:31:02 +02:00
JappaWakka
9d912e939b Fix various Pokémon Type check errors 2024-04-23 17:29:41 +02:00
JappaWakka
c0b3fe06d0 Fix battle tower walk script when camera turned 2024-04-23 16:55:14 +02:00
JappaWakka
064c99a4f3 fix shieldon's normal ow sprite 2024-04-23 11:37:56 +02:00
JappaWakka
224f9c87d7 Fix certain forms crashing pokédex 2024-04-23 11:00:32 +02:00
JappaWakka
81f05a3bd1 Added <System.FileExists(FilePath)> construct
Returns if the specified file (including extension) exists (relative to the GameMode's ContentPath).
2024-04-22 19:25:07 +02:00
JappaWakka
3318a6accc Reduce wait time before clickable MainMenu msgbox 2024-04-22 13:47:33 +02:00
JappaWakka
fabbc958d9 Fix Remove NPC data crash if < 4 args 2024-04-22 13:10:13 +02:00
JappaWakka
fa52bddf96 Fix PokéFan Beverly crash 2024-04-22 11:06:07 +02:00
JappaWakka
86428f8055 Add construct <Pokemon.FullyHealed([partyID])>
Checks if a specific Pokémon or all Pokémon in the party are fully healed.
2024-04-21 09:10:23 +02:00
JappaWakka
9f7b722bcf Just to be sure 2024-04-20 10:19:36 +02:00
JappaWakka
eac90b82d9 Update Apricorn Screen 2024-04-19 20:23:40 +02:00
JappaWakka
045a299826 Fix Trade Screen crash 2024-04-19 15:08:36 +02:00
JappaWakka
11001f69d0 Fix text errors (out of bounds, newlines) 2024-04-19 15:08:14 +02:00
JappaWakka
e37b4ed2da Fix wrong cursor position for scrollbars 2024-04-17 20:11:49 +02:00
JappaWakka
754d88d05b Enable Gain EXP after Catch for Kolben GameMode 2024-04-17 15:54:35 +02:00
JappaWakka
ccd1b9bb7d Update Trainer Intros 2024-04-17 15:54:00 +02:00
JappaWakka
8451718d14 New GameRule - GainExpAfterCatch
When this is set to true, you gain EXP after you catch a Pokémon, just as if you defeated it.
2024-04-15 15:06:17 +02:00
darkfire006
399c00daf7 add wilds at olivine dock 2024-04-12 20:48:54 -05:00
darkfire006
628e3816ef include some stuff in project 2024-04-09 20:04:20 -05:00
JappaWakka
82fee7a434 Make Fly attack animation possible 2024-04-07 19:51:37 +02:00
JappaWakka
a0fd0f061a Fix @pokemon.setstatus to none 2024-04-07 19:49:27 +02:00
JappaWakka
730e3ad766 Fix egg watch text outside box 2024-04-07 15:04:07 +02:00
JappaWakka
59a8a2e502 fix missing : 2024-04-07 12:25:36 +02:00
JappaWakka
afb752ee4f Prevent stuck in fly mode when gravity active 2024-04-07 12:19:43 +02:00
JappaWakka
e47f20ef35 Fix crash damage not happening when blocked 2024-04-07 12:17:18 +02:00
JappaWakka
6ca5a5442c Multiturn moves don't skip turns 2024-04-07 11:58:28 +02:00
JappaWakka
1bef17409e Add <Pokemon.IsRoaming(RoamerID)>
Checks if the given roaming Pokémon is still active.
2024-04-07 08:56:49 +02:00
darkfire006
2c2271f733 making static encounters repeatable when E4 cleared 2024-04-07 01:47:32 -05:00
JappaWakka
58a12e5edb Follower idle animate always 2024-04-06 19:46:05 +02:00
JappaWakka
86cdffdd76 Name of Attack is shown after TM/HM item name...
and when you @item.messagegive an HM, the Receive_HM jingle plays as well
2024-04-06 19:30:15 +02:00
JappaWakka
62f6605a0f Fix some roamer bugs and crashes 2024-04-04 18:36:36 +02:00
JappaWakka
65ec57d27b Change RoamingID from int to str 2024-04-04 17:52:47 +02:00
JappaWakka
f280c5718c Update @Pokemon.NewRoaming(...) command...
@Pokemon.NewRoaming(RoamerID,PokémonID,Level,regionID,startLevelFile,MusicLoop,[Shiny],[ScriptPath])

RoamerID & ScriptPath are new.
* RoamerID (int) = A required identifier for the roaming Pokémon, can be used in scripts.
* ScriptPath (str) = Path to a script file to execute after every encounter with any roaming Pokémon
2024-04-04 17:49:46 +02:00
JappaWakka
4c5bd0b7f6 Fix player not change to surf pokémon on load 2024-04-04 12:33:34 +02:00
JappaWakka
2cbe35552c Roamers can have forms now 2024-04-04 09:48:25 +02:00
JappaWakka
59f1fd2361 Fix wrong music played when surf or ride 2024-04-03 09:20:31 +02:00
JappaWakka
6c49740ba2 Prevent scrolling while script active 2024-04-02 11:47:47 +02:00
JappaWakka
88d72bb451 Implemented script after catch or defeat roamer 2024-04-02 11:06:33 +02:00
JappaWakka
9ffa127999 Correct script library command 2024-04-01 20:08:25 +02:00
JappaWakka
fdd015a8b4 Fix Frontier Brain to Frontier Head 2024-04-01 20:07:26 +02:00
darkfire006
142fd4d3cf fix pokemon registers 2024-04-01 12:36:21 -05:00
darkfire006
275201de44 fixing frontier pokemon movesets 2024-04-01 12:33:44 -05:00
darkfire006
1c73ca3a5a work around saving behind a rock puzzle 2024-04-01 11:54:36 -05:00
JappaWakka
e2cfd5207a Fix some trainer text 2024-04-01 13:34:45 +02:00
JappaWakka
88b963b8d5 Fix another trainer 2024-04-01 13:33:23 +02:00
JappaWakka
cb2bc3aad1 Fix Fisherman Wilton phone call script 2024-04-01 13:31:53 +02:00
JappaWakka
8b0b977665 Made it possible to fade into @music.forceplay 2024-03-29 18:54:53 +01:00
JappaWakka
d5ed9d5cca Fix incorrect info in ScriptLibrary 2024-03-29 18:53:41 +01:00
darkfire006
1e231196f0 refixed perrserker in the frontier pool 2024-03-29 01:40:54 -05:00
JappaWakka
f1c1558c28 Made fullscreen borderless 2024-03-28 20:12:47 +01:00
JappaWakka
49d1c6c73e Chat on-screen keyboard only when using gamepad 2024-03-28 19:19:17 +01:00
JappaWakka
b04e869783 Show correct buttons on map screen 2024-03-28 19:13:43 +01:00
JappaWakka
582e934b80 Fix gamepad start button not unpausing 2024-03-28 19:13:24 +01:00
JappaWakka
255fc12aee Forgot a thing 2024-03-28 18:58:28 +01:00
JappaWakka
38acb8955b Fix Beat Up no damage for wild Pokémon 2024-03-28 18:58:01 +01:00
JappaWakka
67f4a63273 Trainers can't cheat level at high difficulty 2024-03-28 18:51:09 +01:00
JappaWakka
04055651ac Fix Bide PP consumption 2024-03-28 18:40:21 +01:00
JappaWakka
eabd35006a Quick command error fix 2024-03-28 18:28:21 +01:00
Jasper Speelman
fdc89e31e8
Merge pull request from P3D-Legacy/0.61-implementations
0.61 implementations
2024-03-28 18:03:51 +01:00
JappaWakka
9fe5f00e2a If the exact NPC register exists, no add to save 2024-03-28 17:58:30 +01:00
JappaWakka
5f54709231 Fix trainer text 2024-03-26 18:14:55 +01:00
JappaWakka
6d9138ee38 Fix PokedexScreen crash after catch 2024-03-26 18:13:07 +01:00
JappaWakka
5b774623c5 Position Trainer Intro texture better 2024-03-26 13:13:49 +01:00
JappaWakka
e7e6ba8d0c Fix some Battle Tower trainer dialogue 2024-03-26 13:13:32 +01:00
JappaWakka
619f1b3d93 Fix Mold Breaker 2024-03-26 13:13:07 +01:00
JappaWakka
9bb85df200 Fix Confuse Ray Battle Animation 2024-03-23 17:47:59 +01:00
JappaWakka
d239ad0b84 Block Perrserker from spawning in Frontier 2024-03-22 17:49:08 +01:00
JappaWakka
b0149c7604 Fix another missing linebreak 2024-03-22 17:44:47 +01:00
JappaWakka
ceaf5e50a6 Fix icon/text offsets in Apricorn Screen 2024-03-22 17:42:09 +01:00
JappaWakka
d0e1d670ad Fix missing line break 2024-03-22 17:03:52 +01:00
JappaWakka
fe23d5f4b4 Fix map item index for Pinsirite 2024-03-22 10:33:52 +01:00
darkfire006
3ab16fdf3e various fixes 2024-03-21 22:14:47 -05:00
darkfire006
88f1f64838 fix some registers 2024-03-21 21:34:05 -05:00
darkfire006
4992a87b09 0.60.1 wrap up 2024-03-21 12:16:04 -05:00
JappaWakka
5e58d4d249 Increase performance VoltorbFlip w/ ContentPacks 2024-03-20 15:26:06 +01:00
JappaWakka
fb4d9d15d5 Fix some accidental VoltorbFlipScreen errors 2024-03-20 15:20:30 +01:00
JappaWakka
f1d7bc81c5 Fix incorrect npc remove and league map error 2024-03-20 15:01:27 +01:00
JappaWakka
e217895a20 Make it possible to quit voltorbflip w/ open memo 2024-03-20 13:29:04 +01:00
JappaWakka
24e1335caa Fix crash when you can't switch (shadow tag etc.) 2024-03-18 14:32:29 +01:00
JappaWakka
5f826a799a Fix VoltorbFlip ChooseBox bug 2024-03-15 09:31:07 +01:00
JappaWakka
402fc4d64c Fix Trainers and other Pokémon acting like Roamers 2024-03-14 10:14:21 +01:00
JappaWakka
979b3f68c9 Fixed Bird Keeper Jose's phone text 2024-03-12 20:18:03 +01:00
darkfire006
1816038a63 Revert "Update NAudio"
This reverts commit 5221fcf25b757a970eca337716142b361cb50e86.
2024-03-11 13:28:06 -05:00
darkfire006
fe712bbcdc update bug fix scripts for dog releases 2024-03-10 23:38:44 -05:00
JappaWakka
5221fcf25b Update NAudio 2024-03-10 14:19:52 +01:00
JappaWakka
823e26afd7 Fix some cries 2024-03-10 11:03:07 +01:00
JappaWakka
b1695d6751 Fix Fisherman Tully not giving phone number 2024-03-10 10:05:01 +01:00
JappaWakka
c708d9eaab Fix Meowstic texture errors 2024-03-10 10:01:24 +01:00
JappaWakka
2398cccd20 Tweak the speed of the NotificationPopup 2024-03-07 19:56:14 +01:00
JappaWakka
61de91a141 Added extra argument to @text.notification...
That clears the current list of notifications, dismisses the current one if it's visible and then shows the new one
2024-03-07 19:51:32 +01:00
JappaWakka
36b226d8bb Fix some more ilex forest commands 2024-03-07 14:57:44 +01:00
JappaWakka
b41ac535cd Fix turn commands turning 1stperson players wrong 2024-03-07 14:33:04 +01:00
JappaWakka
8532fd6169 Fix Thief crash 2024-03-07 12:11:09 +01:00
JappaWakka
8dd81c6dc1 Added missing dialog for buying RageCandyBar 2024-03-07 10:46:58 +01:00
JappaWakka
a0425be424 Fix Mahogany NPC taking more money than you have 2024-03-07 10:45:16 +01:00
JappaWakka
6685465b90 Fix Covet crash 2024-03-07 10:44:08 +01:00
darkfire006
aeb1a1829d small fix to rock tunnel layout 2024-03-05 18:28:52 -06:00
darkfire006
7ba709eaaa hiker anthony wrong file path 2024-03-05 16:49:44 -06:00
JappaWakka
de102f4aa7 Fixed Encore & make disabled moves gray in menu 2024-03-05 11:31:33 +01:00
JappaWakka
35355174cc Fix ContentPack menu button crash 2024-03-04 18:06:10 +01:00
JappaWakka
537fcd93af Fix items not being removed from maps 2024-03-03 20:13:24 +01:00
JappaWakka
833916cafb Force important phone calls 2024-03-03 10:09:14 +01:00
darkfire006
6ed27c3721 0.60 wrap up commit 2024-03-01 20:17:54 -06:00
JappaWakka
344b65fe7e Fix @Music.Stop not working 2024-02-29 12:38:33 +01:00
JappaWakka
32be5bbb67 Fix Knock Off Crash 2024-02-28 21:04:02 +01:00
JappaWakka
2551f0d5c7 Fixed multiple evolution softlock 2024-02-27 09:54:47 +01:00
JappaWakka
bb78bb3543 Fix battle music crashes 2024-02-25 18:52:28 +01:00
JappaWakka
50dd29d601 Fix Typos 2024-02-24 09:29:30 +01:00
JappaWakka
d546c7348d Fix Overworld music bugs 2024-02-24 09:26:54 +01:00
JappaWakka
20b2ac35ea Fix Evolutionscreen softlock 2024-02-24 09:26:24 +01:00
JappaWakka
542d1084e0 Fix some errors with Hall of Fame 2024-02-21 18:04:10 +01:00
JappaWakka
86d6f706e9 Fix crash when ID for Item.getItemByID = "" 2024-02-21 17:46:27 +01:00
JappaWakka
48af8b91d7 Fix Pokemon not learn move at evolution 2024-02-21 17:33:36 +01:00
JappaWakka
b36a1f2bd3 Fix many screens not playing levelmusic when exit 2024-02-21 17:07:31 +01:00
JappaWakka
29a790c477 Fix EvolutionScreen crash when able to learn moves 2024-02-20 11:02:37 +01:00
JappaWakka
e2933f78e7 Fix battle music not looping 2024-02-20 11:02:04 +01:00
JappaWakka
e4cb8dfc91 Fixed wondertrade not playing levelmusic when end 2024-02-20 11:01:26 +01:00
JappaWakka
67b2d55e85 Make it all actually work 2024-02-19 20:42:39 +01:00
JappaWakka
af0b31b567 Fix some errors 2024-02-19 20:18:31 +01:00
JappaWakka
6f62a77d0f Updated World Map Visible Tag & added Register Tag
"3", "register"
Name and icon are always visible as long as the string in the Register Tag has been registered with the player
e.g.: {"Visible"[Register]}{"Register"[ShowThisMap]}
2024-02-19 20:11:52 +01:00
JappaWakka
8661684927 Temporarily Disable Chat during PVP 2024-02-19 19:30:53 +01:00
JappaWakka
69e8455cda Revert "Encore fix"
This reverts commit 0091704f4cd4a5a35da7b24d41c8a61960a3cff6.
2024-02-19 18:44:25 +01:00
JappaWakka
0091704f4c Encore fix 2024-02-19 18:33:14 +01:00
JappaWakka
f56dba35cc Implement Visible Tag for World Map
"0", "always"
Name is always visible

"1", "temporary"
Name is visible when player is currently on one of the maps

"2", "unlock"
Name is always visible if the player has visited one of the maps before
2024-02-19 18:09:48 +01:00
JappaWakka
290d400823 catch should despawn roamers though 2024-02-18 09:44:32 +01:00
JappaWakka
8b483a636b Fixed roamers despawn without catch/defeat/flee 2024-02-18 09:42:33 +01:00
JappaWakka
1d26954eab Added <system.language> construct...
...that returns the current language suffix
2024-02-17 18:50:08 +01:00
JappaWakka
f49eba341e Fix achievements not being loaded before checking 2024-02-17 11:40:38 +01:00
JappaWakka
fcac15b0bd Pokémon & Pokédex fixes 2024-02-17 10:51:32 +01:00
JappaWakka
dcfe88a811 Sort GTS Pokémon by number 2024-02-14 17:19:24 +01:00
JappaWakka
8fb00475af Hopefully fix some potential music crashes 2024-02-14 12:12:07 +01:00
JappaWakka
0a218527b3 Fix Pokémon Learn Move Bugs 2024-02-14 12:08:59 +01:00
darkfire006
ac07ee10ea fix 2 more phone trainers 2024-02-11 16:57:30 -06:00
darkfire006
0b23cfb63e more phone fixes 2024-02-09 17:57:12 -06:00
darkfire006
513bcd61a2 Merge branch 'master' of https://github.com/P3D-Legacy/P3D-Legacy 2024-02-09 13:23:13 -06:00
darkfire006
5df626dbfc more phone fixes 2024-02-09 13:23:11 -06:00
JappaWakka
4d629139aa Refresh inventory after attaching mail 2024-02-09 18:40:01 +01:00
JappaWakka
1fbe0a14ad Move MailMan check to Player.Inventory.AddItem 2024-02-09 17:51:09 +01:00
JappaWakka
3e7f2f1cd3 Fix Pokémon level not being parsed crash 2024-02-09 17:07:15 +01:00
darkfire006
dc8df01e3f fix ratatta v raticate mentions 2024-02-09 10:02:11 -06:00
darkfire006
b96f38c8a2 cut not getting the pokemon name 2024-02-08 13:48:08 -06:00
darkfire006
03dfdfeadd phone fixes 2024-02-08 13:47:56 -06:00
JappaWakka
582500171e Fix menu index crash 2024-02-06 19:56:38 +01:00
JappaWakka
2394117aba Align WonderTrade Pokémon to center of screen 2024-02-03 17:19:35 +01:00
JappaWakka
5db9814099 Fix extra period in override text 2024-02-03 17:13:23 +01:00
JappaWakka
0d26a24826 Fix Route 26 Hidden Grotto crash 2024-02-03 16:51:45 +01:00
darkfire006
f2a68b20fd small phone call fixes 2024-02-02 10:19:38 -06:00
JappaWakka
9850a9b888 Fix phone rematch trainers crashes 2024-02-01 17:56:08 +01:00
JappaWakka
3d7dbe2156 Fix Shellos HiddenGrotto form 2024-01-29 12:09:59 +01:00
darkfire006
6932819c21 fix dex evaluations bc unown dex was listed too early 2024-01-29 02:10:11 -06:00
darkfire006
5f2d815e42 fucked up a keyword 2024-01-29 01:52:02 -06:00
darkfire006
beff99d985 end->endif 2024-01-28 20:53:31 -06:00
darkfire006
dff7a0ae49 get old format frontier emblems 2024-01-28 20:53:21 -06:00
darkfire006
27b130914e logic typo 2024-01-26 08:58:26 -06:00
darkfire006
cbda6172bf fix simisear shiny sprite 2024-01-25 21:34:13 -06:00
JappaWakka
50c7125f71 Added Exp calc changing GM Item property
ExpMultiplier|sng,[bool]
optional second argument overrides the exp boost pokémon get when traded if set to true/1
2024-01-24 17:27:59 +01:00
JappaWakka
c50c645654 Display correct GameMode name in main menu 2024-01-24 15:20:57 +01:00
JappaWakka
8ab0da3f38 GameModes in Saves use directory name for check 2024-01-24 12:58:54 +01:00
darkfire006
7a1ab528aa typo 2024-01-19 22:28:19 -06:00
darkfire006
27410cb283 make shops actually prevent buying items you can afford 2024-01-19 22:28:14 -06:00
darkfire006
be184a85ed prevent perrserker and obstagoon from spawning in the frontier 2024-01-16 23:47:51 -06:00
darkfire006
28ec2aa1ab fix pokemon texture errors 2024-01-16 23:35:57 -06:00
darkfire006
07bc005c47 secret give back the berry before a logic split instead of after on one branch 2024-01-16 01:50:39 -06:00
darkfire006
f685dd5506 the add command was working more like a set with a possiblity to reset the stat 2024-01-16 01:50:03 -06:00
darkfire006
87ad7562f7 reset select item screen every time 2024-01-14 01:40:55 -06:00
darkfire006
83318c4607 make berry usage behavior make sense 2024-01-14 01:40:39 -06:00
darkfire006
c21d040dc1 make berries useable only when appropriate 2024-01-14 01:14:00 -06:00
JappaWakka
6b0a6cbab1 Fix form Pokémon in hiddengrottos not working 2024-01-11 10:12:08 +01:00
JappaWakka
2874b71aac Prevent berries with no usage from being used 2024-01-11 09:54:02 +01:00
JappaWakka
1f23b95827 Fix TradeScreen crash with limited stock 2024-01-11 09:47:09 +01:00
darkfire006
e9a234d30c adjust some odds for the rare drinks 2024-01-09 18:50:44 -06:00
darkfire006
7663f5eb21 typed the wrong thing for the color 2024-01-09 18:49:28 -06:00
darkfire006
d329e00af5 include new files in proj 2024-01-08 21:42:02 -06:00
darkfire006
dc3281dcb7 small typo 2024-01-08 21:41:48 -06:00
darkfire006
acb37ab7c3 custom drinks now remove berries 2024-01-08 19:16:43 -06:00
JappaWakka
16a83441d9 Fixs some music bugs...
Fixed delay when unpausing the game while current level has no musicloop defined
Fixed silence (caused by undefined musicloop) overriding currently playing song when unpausing
2024-01-07 13:35:17 +01:00
darkfire006
9129ae0675 fix daily juice generation 2024-01-07 00:06:46 -06:00
darkfire006
d1656f8f22 fix typo 2024-01-06 18:16:17 -06:00
darkfire006
d5b62e90b3 remove unimplemented items 2024-01-06 18:16:11 -06:00
darkfire006
507b9216d9 fix minor gate stuff 2024-01-06 18:16:02 -06:00
darkfire006
9335cf64a4 shoveled some snow 2024-01-06 18:06:23 -06:00
darkfire006
da660052c8 npcs in the frontier centers 2024-01-04 23:27:20 -06:00
JappaWakka
3d046255d5 Fix lighting issues in battle frontier exterior maps 2024-01-01 19:12:46 +01:00
darkfire006
af390034b9 small phone related fixes 2023-12-29 20:47:30 -06:00
darkfire006
2a96fa4d7d remove random leftover npcs 2023-12-29 20:40:13 -06:00
JappaWakka
e8da25f6bd Make fishing rods usable while riding/surfing 2023-12-27 20:49:08 +01:00
JappaWakka
85bcb52780 Added @Level.SetRideType(int) command
Sets the Ride Type of the current map.
Possible values for "int": 0 = Depends on CanDig and CanFly tags, 1 = Can ride, 2 = Can not ride, 3 = Can't stop riding once started
2023-12-27 18:55:48 +01:00
JappaWakka
35f321bf7a Fixed some battle hall text errors 2023-12-27 17:15:02 +01:00
JappaWakka
3f1b7ffc0c Added @Pokemon.Ride([pokeIndex[) command
@Pokemon.Ride([pokeIndex])
Makes a Pokémon in the player's party use the field move Ride. If the argument is left empty, the first Pokémon who knows Ride gets selected.
pokeIndex (int) [optional, defaults to -1] = the party index of a Pokémon
2023-12-27 17:13:00 +01:00
JappaWakka
845464f03c Added @Item.Use(ItemID) command
@Item.Use(ItemID)
Uses the specified item if the player has it.
2023-12-27 17:10:54 +01:00
JappaWakka
168255e1a0 If level RideType = 3, no stop once riding/biking 2023-12-27 17:09:25 +01:00
darkfire006
5eefdf9d1c remove unneeded speed setting 2023-12-26 10:58:04 -06:00
darkfire006
65e711f15c remove reference to an unneeded script 2023-12-22 16:21:29 -06:00
JappaWakka
46026e8de0 Fix attack desc not fitting in ChooseAttackScreen 2023-12-22 15:34:38 +01:00
JappaWakka
c1cadd3078 Fix CopyMove using wrong GetAttackByID function 2023-12-22 14:48:14 +01:00
JappaWakka
8a3a9dbe9b Add cries for new Pokémon 2023-12-22 11:04:57 +01:00
JappaWakka
8e13910d57 Fix item selection screen 2023-12-22 10:26:51 +01:00
JappaWakka
92f3832416 Fix entity constructs return sng instead of str 2023-12-22 10:12:14 +01:00
JappaWakka
2538b835b9 Fix sea plane ticket check 2023-12-22 10:11:19 +01:00
darkfire006
8e47716c06 open up weather in BF 2023-12-21 00:20:24 -06:00
darkfire006
2c14eef239 fix daily juice giving 2023-12-21 00:09:59 -06:00
darkfire006
f655939510 fix shops with registers 2023-12-21 00:09:49 -06:00
darkfire006
26ea58df47 fix world maps inside factory 2023-12-21 00:09:18 -06:00
darkfire006
10b6587ac5 minor fixes to factory 2023-12-20 22:29:28 -06:00
darkfire006
60e86c41c3 plane now requires ticket 2023-12-20 20:11:00 -06:00
darkfire006
f4d3a717fe misc frontier fixes 2023-12-20 19:54:46 -06:00
darkfire006
6f40767147 moved soon bots 2023-12-20 19:18:26 -06:00
JappaWakka
4325351320 Fix localized field moves not working 2023-12-19 13:17:14 +01:00
JappaWakka
da7339cd79 Fix crash with Schoolkid Alan on route 36 2023-12-19 12:39:17 +01:00
JappaWakka
ee6fa0d67a Fix typo in Violet City map 2023-12-19 12:24:32 +01:00
JappaWakka
b2b34966db Make PP Up & PP Max not usable in battle 2023-12-19 12:23:41 +01:00
JappaWakka
830a11d696 Fix some errors in pallet\evaldist script 2023-12-19 12:20:27 +01:00
JappaWakka
40e7fe2a34 Fix typo in Ruins of Alph PC text 2023-12-19 12:16:16 +01:00
JappaWakka
4c91360cd5 Fixed Spearow Kenya's mail crash 2023-12-19 12:15:03 +01:00
JappaWakka
a1c3c6f9da Added <Pokémon.LevelAttacks(id,maxLv)> construct
<Pokémon.LevelAttacks(Index,[MaxLevel])>
Returns a string of every move the Pokémon can learn at or below a certain level
* Index (int) = Index of a Pokémon in the player's party
* MaxLevel (int) [optional] = Every move the Pokémon can learn at or below the level specified by this argument is added to the string. When this argument is left out or set to "-1", it will default to the Pokémon's current level.
2023-12-16 15:59:32 +01:00
JappaWakka
b40dde8904 Added CopyMove property for GM Moves 2023-12-15 18:21:24 +01:00
JappaWakka
0dad856a14 forgot to fix an error 2023-12-12 10:00:54 +01:00
JappaWakka
459ce005d0 Fix crashes and errors related to custom types 2023-12-12 09:57:53 +01:00
JappaWakka
09051e0cba Make spelling of Paralyze consistent for AIField 2023-12-11 18:28:44 +01:00
JappaWakka
5857a05eb9 Add Type example.dat to project 2023-12-11 17:55:15 +01:00
JappaWakka
13fa3f52d2 Fix dive checking the wrong canhit move property 2023-12-11 17:52:32 +01:00
JappaWakka
63c7f96cb8 Added example.dat for GM Types 2023-12-11 14:38:28 +01:00
JappaWakka
bd2d2f2c3d RaiseStat and LowerStat functions show msg if fail 2023-12-11 14:04:53 +01:00
JappaWakka
58eba766ac Added GM Move property to copy anims of other move 2023-12-11 13:48:20 +01:00
JappaWakka
3c01312fd6 Add AIField property for GM Moves 2023-12-11 13:39:26 +01:00
JappaWakka
84df4d7ccc Forgot a thing 2023-12-10 20:20:23 +01:00
JappaWakka
a5e68a153a Implement Custom Types 2023-12-10 20:19:14 +01:00
JappaWakka
705e0b9725 Implemented random TimesToAttack move property 2023-12-10 15:32:54 +01:00
JappaWakka
0e5c260f42 Update Example Move 2023-12-10 15:21:02 +01:00
JappaWakka
2c3ca27c2d Implemented RandomStatus GM move function 2023-12-10 14:53:59 +01:00
JappaWakka
68a64fde7d Fix conflict in properties 2023-12-10 14:36:12 +01:00
JappaWakka
250bc9899f Implement BasePower calc mods for GameModeMoves 2023-12-10 14:27:47 +01:00
JappaWakka
58d438f179 Fix Rare Candy healing before checking evolution 2023-12-10 13:13:06 +01:00
JappaWakka
e2d0996ffd Make it possible to reset the Pokémon status 2023-12-10 13:11:48 +01:00
JappaWakka
5e87f04d73 Fix magnitude basepower 2023-12-10 10:43:01 +01:00
JappaWakka
8295bbffcc Added a chance variable to LowerStat & RaiseStat 2023-12-10 10:10:06 +01:00
JappaWakka
b8941b92a1 Fixed Peat Block item icon (removed two pixels) 2023-12-08 09:53:48 +01:00
JappaWakka
3e9c1cde9c Fixed setDayTime value not returning 2023-12-08 09:53:17 +01:00
darkfire006
453c041199 remove archaic hotfixes and up OT clamp to 6 digits 2023-12-07 01:18:11 -06:00
JappaWakka
f6447b5552 Fix Pokémon Menu Icon offsets for and higher 2023-12-06 11:56:06 +01:00
JappaWakka
4b2bd53e36 Fix hiddengrotto Pokémon Y Offset 2023-12-06 11:54:42 +01:00
darkfire006
4e2068949a set up the daily juice stuff correctly 2023-12-06 00:25:13 -06:00
darkfire006
168a442855 fix script.start not being loopable in while loops
this was a weird one to track down
2023-12-06 00:24:57 -06:00
JappaWakka
2a869e0b4b Added @Pokemon.SetStatus(index,status) command...
@Pokemon.SetStatus(index,status)
index = Index of the Pokémon in the player's party
status = the desired status to give the Pokémon (possible values: "brn", "frz", "prz", "psn", "bpsn", "slp", "fnt")
2023-12-04 19:05:31 +01:00
JappaWakka
1c7ce33a73 Added negative Place/Env.Type evo conditions 2023-12-04 18:01:15 +01:00
JappaWakka
bd36bbfad0 Allow multiple Places/EnvironmentTypes 2023-12-04 17:07:07 +01:00
JappaWakka
34a856e1a3 Forgot a thing 2023-12-04 16:37:23 +01:00
JappaWakka
860241e774 Add EnvironmentType Evolution Condition 2023-12-04 16:36:22 +01:00
JappaWakka
48c7d9b214 fixed some interactions 2023-12-04 16:07:53 +01:00
JappaWakka
cf8e3c63b2 Added some cancelindexes 2023-12-04 15:23:21 +01:00
JappaWakka
76dcb2a9a1 Fix Battle Frontier Juice Shop 2023-12-04 15:08:32 +01:00
JappaWakka
4f1a940d9e Fix Mega forms not resetting after battle 2023-12-04 13:31:37 +01:00
JappaWakka
f3777e3130 Implement Strange Steam attack 2023-12-04 09:22:09 +01:00
JappaWakka
d9c26c8550 Implemented Rage Fist attack 2023-12-03 19:34:24 +01:00
JappaWakka
bc8ad24353 Added Status EvolutionCondition 2023-12-03 15:58:07 +01:00
JappaWakka
864fa7f508 Implement fade into the next song in command 2023-11-28 09:53:20 +01:00
JappaWakka
a8b022c613 Fix default credits and skydome 2023-11-27 17:40:21 +01:00
JappaWakka
cb5b6bb63a Remove username from credits example 2023-11-27 17:09:55 +01:00
darkfire006
79f2662e6f full name OR username, not both, also pad timing if no GJ save 2023-11-26 16:23:58 -06:00
JappaWakka
a4f3268b6c Credits example file tweak 2023-11-26 18:16:41 +01:00
JappaWakka
e4e8c06119 Credits Localization & Continue Hint 2023-11-26 15:45:23 +01:00
JappaWakka
926f0dac9b Implement custom Credits background maps 2023-11-26 15:14:47 +01:00
JappaWakka
22edf29445 Fix bug with music that shouldn't loop still does 2023-11-26 15:14:03 +01:00
JappaWakka
53304990f8 Added example credits.dat & functionality 2023-11-26 11:46:37 +01:00
JappaWakka
571aa11310 Fixed text colors in Hall Of Fame screen 2023-11-26 10:38:56 +01:00
JappaWakka
5d34878932 Fix Hall of Fame Screen fade not filling screen 2023-11-25 19:52:56 +01:00
JappaWakka
5616eb87a5 Updated Jasper credits 2023-11-25 19:52:19 +01:00
JappaWakka
aeaddf3f79 Updated Jasper Speelman credits 2023-11-25 19:51:59 +01:00
darkfire006
dc5627e85f add jasper again 2023-11-25 00:37:10 -06:00
JappaWakka
bc88f130d0 Fix incorrect effect on Muddy Water 2023-11-24 11:54:44 +01:00
JappaWakka
94f03e833a Fixed flinch moves being affected by King's Rock 2023-11-24 11:54:29 +01:00
JappaWakka
a7e723f720 Add Selected Player Skin Name & Gender constructs 2023-11-23 15:09:39 +01:00
JappaWakka
6a33432cdd Fix Waterfall Animation Speed 2023-11-19 20:43:31 +01:00
JappaWakka
03df3e36a0 Make it possible to change Hall Of Fame background 2023-11-13 20:27:02 +01:00
JappaWakka
3bd6f1af5b Prevent crash when no Data\Contacts.dat 2023-11-13 15:20:09 +01:00
JappaWakka
d516a1e152 Fix water textures not rotating on fast graphics 2023-11-13 12:59:19 +01:00
JappaWakka
fef6b689ea Liquid Ooze now also affects Leech Seed 2023-11-13 12:19:56 +01:00
JappaWakka
1e8c1bf9b8 Apply 0 damage fix for Bide only 2023-11-08 15:00:55 +01:00
JappaWakka
5019a59c0d Fix moves being able to do 0 damage 2023-11-08 10:14:18 +01:00
JappaWakka
96a47d3418 Fixed snow under buildings 2023-11-06 09:13:38 +01:00
JappaWakka
a8c8479ead Fix Pokédex radio 2023-11-05 18:37:41 +01:00
JappaWakka
1e16a5dcc4 Pokémon forms play the right cry in battle now 2023-11-04 15:16:25 +01:00
JappaWakka
6d83167a8d Fix some wrong phone call script paths 2023-10-30 13:50:38 +01:00
JappaWakka
c0101a122a Replaced script steps thing with @script.delay
@Script.Delay(ScriptPath,DelayType,DelayValue)
Executes a script file after something happened (like having moved a certain amount of steps)

@Script.ClearDelay(ScriptPath,DelayType,DelayValue)
Clears the register created with @script.delay, preventing the script from being executed.

<script.delay(ReturnType)>
Returns a different thing depending on what you write for ReturnType:
"type" - returns what kind of trigger the script delay uses (only "steps" atm)
"script" - returns the script that will be executed after the delay ended
"value" - returns when the trigger ends, like how many steps are left for example
2023-10-30 13:28:30 +01:00
JappaWakka
dae406f887 Added Step Script commands & constructs
@Player.SetScriptSteps(stepAmount,scriptPath)
Executes a script file after having moved the given amount of steps.

@Player.ClearScriptSteps
Clears the register created with @Player.SetScriptSteps, preventing the script from being executed.

<Player.ScriptSteps>
Returns the amount of steps before the script as defined by @Player.SetScriptSteps is executed.
2023-10-29 17:59:39 +01:00
JappaWakka
c76ee70b08 WaterSpeed can now also be set by GameModes 2023-10-29 13:52:48 +01:00
JappaWakka
30d3929154 Allow linebreaks in GameMode description 2023-10-28 12:39:49 +02:00
JappaWakka
0860f3b63c Small tweak to Mist weather 2023-10-27 11:58:54 +02:00
JappaWakka
7b7b23260a Fix cave fog + added Mist weather 2023-10-27 11:48:56 +02:00
JappaWakka
7136346b18 Fix Coin Case description 2023-10-27 11:48:21 +02:00
JappaWakka
30d89a4b42 Fix crash in Cerulean Cave Proton encounter 2023-10-22 13:05:26 +02:00
JappaWakka
0119103942 Add headbutt encounters to route 38 2023-10-18 20:16:45 +02:00
JappaWakka
5543a70c84 Add headbutt encounters to route 34 & 49 2023-10-18 19:14:58 +02:00
JappaWakka
fce1309183 More AnimatedBlock issues fixed 2023-10-17 20:30:22 +02:00
JappaWakka
bc4e42d1f3 Fix crash related to AnimatedBlocks 2023-10-13 09:50:20 +02:00
JappaWakka
8a39146e3e Fix Peat Block 2023-10-12 19:33:23 +02:00
JappaWakka
721b7d992c Implemented InterfaceScale option 2023-10-12 18:25:43 +02:00
JappaWakka
5c3adbcb2a Fix Walk NPC Movement...
Now an NPC with the Walk MovementType will no longer face a direction that is not in its MoveRectangles. When blocked in all directions, it will turn towards a place where it would otherwise have moved towards. Also slightly changed the chance for the NPC to walk or change direction.
2023-10-11 11:30:49 +02:00
JappaWakka
3d44bf61f3 Fix Animatedblock not updating with seasons 2023-10-10 11:33:01 +02:00
JappaWakka
f7fd221ce9 Fix ForceCameraTurn 2023-10-10 09:47:05 +02:00
JappaWakka
d2673ed435 Debug compass tweak 2023-10-09 19:20:00 +02:00
JappaWakka
de2c6c829e Added a debug compass for mapping purposes 2023-10-09 19:15:00 +02:00
JappaWakka
30ea882315 Fix Kleavor OW textures 2023-10-09 16:08:15 +02:00
JappaWakka
3468db7f21 Allow for different animated backdrops 2023-10-05 13:36:02 +02:00
JappaWakka
ecc0b8400a
Fixed typos 2023-10-03 15:59:46 +02:00
JappaWakka
241cb8af9c Fix NPCs updating too often 2023-10-03 09:43:58 +02:00
JappaWakka
eff7029411 Fix OffsetMap NPCs not updating 2023-10-02 20:26:24 +02:00
JappaWakka
f55f910f3b Prevent usage of berries that can't be used 2023-10-01 14:28:32 +02:00
JappaWakka
d08b472b35 Fix for custom water bug with GraphicsStyle 2023-09-30 19:07:47 +02:00
darkfire006
f0a9a9359b small fixes 2023-09-29 09:37:44 -05:00
JappaWakka
6bb8d2107f Make attack descriptions localizable 2023-09-22 12:23:04 +02:00
JappaWakka
25bda8826a Make wild pkmn uncatchable if catchrate = -1 2023-09-22 11:09:35 +02:00
JappaWakka
ca3ddfa441 Make it possible to define custom itemdata mapname 2023-09-21 17:46:12 +02:00
JappaWakka
dce892eda9 Correct Pokémon name length Name Rater 2023-09-20 18:24:36 +02:00
JappaWakka
e87f7953e0 Fix EXP bar position 2023-09-20 16:52:53 +02:00
JappaWakka
61b92076c9 Fix bracket error 2023-09-20 09:07:01 +02:00
JappaWakka
ecb644b974 Let sandbox mode saves use field moves too 2023-09-20 09:06:09 +02:00
JappaWakka
4460ac9f52
Allow trainers to use non Integer itemids 2023-09-17 10:37:35 +02:00
JappaWakka
135f0cdd4e
Fix trainer money crash 2023-09-15 20:04:51 +02:00
JappaWakka
3d13d90b63 Make the dept. store floor signs blend in better 2023-09-13 10:58:12 +02:00
JappaWakka
b5668f2f23 update dialogue referring to slots vs voltorb flip 2023-09-13 10:48:16 +02:00
JappaWakka
863e77508a Fixed some typos 2023-09-13 10:46:31 +02:00
JappaWakka
04f971e8df Remove need for unnecessary register variable 2023-09-11 18:42:07 +02:00
JappaWakka
8d2eb864c1 NPCs no longer walk or turn away when paused 2023-09-10 17:39:05 +02:00
JappaWakka
5b18669000 Add new server port to default serverlist 2023-09-07 20:38:17 +02:00
JappaWakka
b66be1637c Added camera battleanims & earthquake anim &...
...fixed the timing system to be consistent
2023-09-07 13:05:20 +02:00
JappaWakka
eccda481b9 Implemented flash move animation 2023-09-06 12:13:24 +02:00
JappaWakka
5747c2f1ce Added pkmn gender constructs + fix hidden grotto 2023-09-03 18:47:15 +02:00
JappaWakka
552548b5ad Fix for pokédex radio 2023-09-03 16:40:18 +02:00
JappaWakka
d9eb12d341 Fix for softlocks and other battle bugs 2023-09-03 16:39:48 +02:00
JappaWakka
d878559df2 Correct variable name case 2023-08-31 16:39:40 +02:00
JappaWakka
062b14220c More effectively parse pkmn add commands 2023-08-31 16:39:07 +02:00
JappaWakka
0eddb70011 Bring back fading out music with switching maps 2023-08-29 19:20:54 +02:00
JappaWakka
5429ad9e15 Only use models from the active gamemode 2023-08-29 11:28:53 +02:00
JappaWakka
18e020bfdf Partially fixed switch moves 2023-08-22 20:55:32 +02:00
JappaWakka
4a4a2133ee Fix positions and scale of pvp results text 2023-08-22 20:14:07 +02:00
JappaWakka
e23ba807eb Fix camera facing the wrong way in PVP switch 2023-08-22 20:13:24 +02:00
JappaWakka
12c7068bd6 Battle/Trade request player texture position fix 2023-08-21 18:49:14 +02:00
JappaWakka
ecd46961e2 PVP Lobby ready text background size fix 2023-08-21 18:48:34 +02:00
JappaWakka
fa8c8cef74 Header background color fix 2023-08-21 18:48:11 +02:00
JappaWakka
888371c914 Some battle fixes & move implementations
* Baton Pass, Volt Switch, Parting Shot and U-Turn technically work, however the camera is aimed at the wrong pokémon
* Fixed softlock when the PVP client selects a move before the host has finished the battle intro dialogue
2023-08-21 18:43:40 +02:00
JappaWakka
0b183bb5f8 Texture and color fixes in menus 2023-08-15 20:37:05 +02:00
JappaWakka
03bdf93468 Change button textures when switching gamemodes 2023-08-15 18:57:51 +02:00
JappaWakka
944e42cadd Fixed Baton Pass, PVP needs testing 2023-08-15 18:36:02 +02:00
JappaWakka
c007d0d6f4 Removed unnecessary gamemode item properties 2023-08-14 18:40:52 +02:00
darkfire006
f5d2f66c75 why dafuq did this happen 2023-08-11 17:02:38 -05:00
JappaWakka
13493287ba Fix localization bugs 2023-08-11 12:06:07 +02:00
JappaWakka
6b4e8941d2 Fix registered trainers still do in sight check 2023-08-11 11:39:26 +02:00
JappaWakka
464c317d2f Revert "Fix registered trainers still do in sight check"
This reverts commit b7a045e37c2c055c83f7eca9c7d2db7a595b51c6.
2023-08-10 19:45:14 +02:00
JappaWakka
b7a045e37c Fix registered trainers still do in sight check 2023-08-10 19:44:06 +02:00
JappaWakka
edf225189d Fix for item messagegive 2023-08-10 10:31:57 +02:00
JappaWakka
f92373d447 Add @Entity.SetModel(ID,ModelPath) 2023-08-09 20:22:36 +02:00
JappaWakka
cbce5512cc Fix model lighting bug 2023-08-09 19:33:53 +02:00
JappaWakka
35c8e8f4c5 Translated plural item names + fixes 2023-08-09 16:59:37 +02:00
JappaWakka
15f57d8bc5 Make plural names localizable + item found 2023-08-09 16:20:16 +02:00
JappaWakka
49f54471b6 Prevent possible wrong jingle 2023-08-09 15:58:50 +02:00
JappaWakka
4b399a1892 Dutch localization tokens JoinServerScreen 2023-08-09 15:57:02 +02:00
JappaWakka
e3c3a53e85 Localization for Join Server Screen 2023-08-09 15:50:56 +02:00
JappaWakka
3ff8161a7b Don't reset language when no tokens file 2023-08-09 14:54:49 +02:00
JappaWakka
d7b08ca349 Don't forget item categories in receive message 2023-08-09 14:54:17 +02:00
JappaWakka
59b2205418 Remove linebreak in item name if it's there 2023-08-09 14:46:15 +02:00
JappaWakka
152422903d Placed a ) in the wrong spot & forgot a space 2023-08-09 14:42:25 +02:00
JappaWakka
128556196e New Dutch tokens 2023-08-09 14:37:00 +02:00
JappaWakka
9ffd923e56 Fix gamemode splash again (forgot other menus) 2023-08-09 14:36:04 +02:00
JappaWakka
f8c63948d4 Localizable receive items and berries messages 2023-08-09 14:26:26 +02:00
JappaWakka
e8650f8d18 Reset Main Menu GameModeSplash on click too 2023-08-09 10:59:26 +02:00
darkfire006
a5c6144ebf fix crashes related to forms in the dex 2023-08-06 19:59:25 -05:00
darkfire006
39017d57bf use system.scripttrigger 2023-08-06 19:58:49 -05:00
JappaWakka
8d8e02a274 Fix incorrect skin scaling in pokégearscreen 2023-08-06 16:17:12 +02:00
JappaWakka
78cd53d745 Added <system.scripttrigger>
Returns what triggered the current script (NPCInSight, NPCInteract, ScriptBlockWalkOn, ScriptBlockInteract, Notification, PhoneReceive, PhoneCall, StartScript, ScriptCommand, StrengthTrigger, MapScript, ChatCommand).
2023-08-06 16:17:05 +02:00
darkfire006
d9473e5454 reset call flag to blank after script 2023-08-06 00:17:43 -05:00
darkfire006
28070fa083 fix juice script 2023-08-06 00:04:39 -05:00
JappaWakka
4e23c9f9da Fix background & splash scaling 2023-08-05 15:14:38 +02:00
JappaWakka
593c5731a1 Update gamemode splash + added mainmenu GM splash 2023-08-05 14:47:35 +02:00
JappaWakka
73edefdd4b More localization stuff 2023-08-05 13:42:56 +02:00
JappaWakka
36294f8647 Add line break for bicycle use text 2023-08-05 13:26:48 +02:00
JappaWakka
915293431e Dutch Pokédex tokens 2023-08-05 10:43:16 +02:00
JappaWakka
e2320d8f07 Localizable Pokédex Screen 2023-08-05 10:28:18 +02:00
JappaWakka
c68b55de91 Localizable can't save text 2023-08-05 09:58:42 +02:00
JappaWakka
a3f7bcaef0 Make menu screen localizable 2023-08-05 09:55:00 +02:00
JappaWakka
e576f50c19 Fix frontier flag 2023-08-05 09:54:37 +02:00
JappaWakka
6e8067b30b Fix battlescreen interaction while in chatscreen 2023-08-04 10:15:18 +02:00
JappaWakka
5a7304c6fd Remove female Hisuian Sneasel from project 2023-08-04 09:55:54 +02:00
JappaWakka
3ba2ef6b58 Remove female Hisuian Sneasel 2023-08-03 19:40:43 +02:00
JappaWakka
14d284bb1e Finished Dutch item name tokens 2023-08-02 15:43:31 +02:00
JappaWakka
02f627b6d6 Fix small color difference in icons 2023-08-02 15:00:13 +02:00
JappaWakka
9ab54ac8ff Update GameModeItem example 2023-08-02 14:41:30 +02:00
JappaWakka
f336731d0e Some more Dutch tokens 2023-08-02 14:36:39 +02:00
JappaWakka
8f396d0a7a GameMode Items can also be Mail now 2023-08-02 14:36:19 +02:00
JappaWakka
acee085383 Tokens and Corrections 2023-08-02 11:27:12 +02:00
JappaWakka
43f66368b9 Localization line splits voltorbflip + inventory 2023-08-02 10:52:12 +02:00
JappaWakka
f128382597 Added cancelindex to voltorbflip menus 2023-08-01 20:20:35 +02:00
JappaWakka
694acb7730 Fix other languages not working 2023-08-01 20:06:20 +02:00
JappaWakka
d504a4961e Added a space 2023-08-01 20:06:01 +02:00
JappaWakka
e8e27c727e Voltorb Flip coin case cap won't prevent game 2023-08-01 20:05:52 +02:00
JappaWakka
2e85705bf8 Voltorb Flip coin case cap won't quit game 2023-08-01 18:54:00 +02:00
JappaWakka
ac18f79d99 Don't show unread icon when taken from party 2023-08-01 18:38:42 +02:00
JappaWakka
0cdd7445c3 "Send to PC" also fits 2023-08-01 18:34:19 +02:00
JappaWakka
cbd8bc5046 View taken mail before sent to pc + can reattach 2023-08-01 18:24:31 +02:00
JappaWakka
7aa38cd921 Implement Encore correctly 2023-08-01 13:53:10 +02:00
JappaWakka
df17680e97 Fix daycare thing 2023-08-01 13:19:34 +02:00
JappaWakka
3273b44315 Fix position text and inputbox 2023-08-01 13:18:58 +02:00
JappaWakka
c9b2bdfe62 Make it possible to write mail from inventory 2023-08-01 13:17:09 +02:00
JappaWakka
783e401c39 Fix catch animation 2023-08-01 12:24:35 +02:00
JappaWakka
3e51436c0e Make Mailman Trophy achievable 2023-08-01 11:17:54 +02:00
JappaWakka
1419419d65 Fix mail shop 2023-08-01 10:08:12 +02:00
JappaWakka
66a9ea8eec Pokémon OW fixes 2023-07-31 14:53:15 +02:00
JappaWakka
6fc78444f4 Remove headbutt tree badge requirement 2023-07-30 18:17:19 +02:00
JappaWakka
8a478fa3c8 Reset run toggle when quit save 2023-07-30 18:17:01 +02:00
JappaWakka
e497776ecd Localized field moves and switching 2023-07-30 18:16:27 +02:00
JappaWakka
d66da7f1e8
Merge pull request from jianmingyong/BasicEffectWithAlphaTest
Add BasicEffectWithAlphaTest
2023-07-30 13:28:06 +02:00
JappaWakka
5c13283445 Fix big map screen player icon offset 2023-07-30 12:39:17 +02:00
Yong Jian Ming
7cd60cc3ad
Add BasicEffectWithAlphaTest 2023-07-30 18:05:08 +08:00
JappaWakka
84313dc429 Fix some things related to pokémon commands 2023-07-30 10:39:48 +02:00
JappaWakka
3076bf5bc5 Draw name after texture so it's not covered 2023-07-30 09:45:25 +02:00
darkfire006
0a2324b12a event, mandatory phone calls 2023-07-29 23:32:52 -05:00
JappaWakka
ce565d7925 Fix Berserker Gene functionality 2023-07-29 09:58:12 +02:00
JappaWakka
191fc26cae Remove from incorrect sprites from project 2023-07-28 18:46:31 +02:00
JappaWakka
b42add2307 Added hisuian party icons 2023-07-28 18:33:14 +02:00
JappaWakka
93bf259edb Remove incorrect sprites 2023-07-28 18:13:09 +02:00
JappaWakka
73e5cb97f8 Add OWs for hisui forms and 899-901 2023-07-28 18:10:47 +02:00
JappaWakka
d911935dfb Fixed BattleAnimation bug, updated moves 2023-07-28 15:51:16 +02:00
JappaWakka
6fe581dff9 Add @player.removefrontieremblem(str,bool) 2023-07-28 13:06:04 +02:00
JappaWakka
d23fc9a37d Pokégear shows BP on frontier screen 2023-07-28 13:05:32 +02:00
JappaWakka
49b0ad9103 Made texturemanager log missing textures better 2023-07-28 12:35:25 +02:00
JappaWakka
bded481df8 Customizable Frontier Emblems 2023-07-28 12:35:00 +02:00
JappaWakka
d5bcb336dd Update forms 2023-07-27 20:12:56 +02:00
JappaWakka
5c3cbe89c1 Last argument notificationpopup forces accept
Also you can't move or turn the camera when a notificationpopup is forced
And you can't pitch the camera up and down anymore while in a script
2023-07-27 15:50:45 +02:00
darkfire006
41e4889e10 daycare calls update 2023-07-26 16:47:35 -05:00
darkfire006
66fea25d44 new contacts 2023-07-26 15:23:18 -05:00
darkfire006
339b7ae277 ace trainer beth update 2023-07-26 15:22:54 -05:00
darkfire006
a02c4e3405 update ace trainer gaven 2023-07-26 15:01:03 -05:00
darkfire006
8c27ec5fba ace trainer reena update 2023-07-26 13:38:46 -05:00
darkfire006
e9dc031b68 bird keeper jose update 2023-07-26 12:12:01 -05:00
JappaWakka
e78cabb598 Add confusion to gamemode move functions 2023-07-26 18:53:14 +02:00
darkfire006
6305acfdb5 small route 47 fixes 2023-07-26 11:03:46 -05:00
JappaWakka
3d50fe8059 Added galar OWs, fixed some others 2023-07-26 17:17:57 +02:00
JappaWakka
5a447b8f01 Include in Project 2023-07-26 14:39:33 +02:00
JappaWakka
5b464af881 Added missing poké front + back + menu sprites
not all have their respective shiny yet
2023-07-26 14:28:29 +02:00
JappaWakka
1c27620e13 Show shiny in dex if caught 2023-07-26 14:26:56 +02:00
JappaWakka
02475bb24a Fix typos in battlefield maps 2023-07-26 11:03:57 +02:00
JappaWakka
93a0a2a76d Fix end break crash 2023-07-26 10:49:46 +02:00
JappaWakka
3c21a672c0 Stop Player from animating when game paused 2023-07-26 10:33:53 +02:00
JappaWakka
bda8fbc833 Fix BattleMapOffset hopefully 2023-07-26 10:33:21 +02:00
JappaWakka
72bdc2976a Fixed @entity.setscale for entities with model 2023-07-26 09:30:47 +02:00
JappaWakka
52696d0fa3 Be able to fly from top of tin tower 2023-07-26 09:29:50 +02:00
darkfire006
32b5092aa2 picknicker erin update 2023-07-26 01:06:54 -05:00
darkfire006
ff6cff82d6 hiker perry update 2023-07-26 00:54:11 -05:00
darkfire006
b7d2aef787 clear extra in vance 2023-07-26 00:47:00 -05:00
darkfire006
3848cd7e96 memorial boat fix part 2 2023-07-26 00:43:30 -05:00
darkfire006
e8530768df fix memorial boat 2023-07-26 00:42:25 -05:00
darkfire006
8371dd72eb wrong held item for cherubi 2023-07-26 00:27:19 -05:00
darkfire006
20dba9e218 blackbelt kenji update 2023-07-26 00:23:12 -05:00
darkfire006
9468972e78 fisherman wilton and some fixes 2023-07-26 00:11:47 -05:00
darkfire006
7d81b96679 small call fixes 2023-07-25 23:39:08 -05:00
darkfire006
12927f986b birdkeeper vance update 2023-07-25 23:38:52 -05:00
darkfire006
8ea0371e5e update pokemaniac brent 2023-07-25 22:59:22 -05:00
darkfire006
bb72f7ab6d picknicker tiffany update 2023-07-25 22:31:42 -05:00
darkfire006
120eaceb12 fisherman tully update 2023-07-25 22:31:20 -05:00
darkfire006
5c80210e77 beverly 4 2023-07-25 22:30:26 -05:00
darkfire006
1b7565849f sailor huey update 2023-07-25 20:42:26 -05:00
darkfire006
92ab5f2ccd gentleman alfred update 2023-07-25 20:05:56 -05:00
JappaWakka
96284cf40e Burmy & Wormadam sprite fix 2023-07-25 18:22:36 +02:00
JappaWakka
07a388dd31 Typo fix 2023-07-25 18:19:40 +02:00
JappaWakka
7263509579 Revival Herb is now a medicine item 2023-07-25 18:18:53 +02:00
JappaWakka
abe69efb07
Merge pull request from P3D-Legacy/mailsystem
Mailbox screen updated and polished
2023-07-25 18:17:46 +02:00
JappaWakka
3761524fba Header polish 2023-07-25 18:14:44 +02:00
JappaWakka
d390e72c69 Route 32 Spearow quest update 2023-07-25 18:02:07 +02:00
JappaWakka
af2831673e Mail sender name and ot constructs 2023-07-25 14:11:41 +02:00
JappaWakka
fdcbdfa62b Add mail delete menu + modern buttons 2023-07-25 12:48:43 +02:00
darkfire006
9c861fc0b4 beverly round 3 2023-07-25 00:46:27 -05:00
darkfire006
80428d0751 pokefan derek updates 2023-07-25 00:46:13 -05:00
darkfire006
8bb162ff13 school kid chad update 2023-07-25 00:23:47 -05:00
darkfire006
72d7c311bb lass dana update 2023-07-25 00:10:56 -05:00
darkfire006
2ff0e8d1e8 school kid alan update 2023-07-24 22:51:15 -05:00
darkfire006
4939a715c1 update beverly 2 2023-07-24 22:29:26 -05:00
darkfire006
20a173874b update school kid jack 2023-07-24 22:29:17 -05:00
darkfire006
bd522ffcff small fix 2023-07-24 22:15:04 -05:00
darkfire006
f78c739f9b pokefan beverly update 2023-07-24 22:14:46 -05:00
darkfire006
e25bcace3e lass krise update 2023-07-24 20:48:19 -05:00
darkfire006
76de1152a9 firebreather walt update 2023-07-24 20:09:21 -05:00
darkfire006
f04332016e juggler irwin update 2023-07-24 19:37:11 -05:00
darkfire006
ecbd410e5b bug catcher arnie update 2023-07-24 19:36:06 -05:00
darkfire006
e44441df9a missed thing 2023-07-24 19:20:13 -05:00
darkfire006
260c3a3b06 youngster ian update 2023-07-24 18:47:01 -05:00
darkfire006
3d4bef33ff picnicker gina update 2023-07-24 17:48:32 -05:00
darkfire006
8adf5a1079 hiker anthony update 2023-07-24 17:31:35 -05:00
JappaWakka
970feaefbc Progress trying to make mailscreen prettier 2023-07-24 19:47:26 +02:00
darkfire006
7c245946f0 fisherman ralph update 2023-07-24 12:10:38 -05:00
darkfire006
25b3d620b6 found the call sfx :P 2023-07-24 11:46:06 -05:00
darkfire006
5893036e92 update picnicker liz 2023-07-24 11:45:46 -05:00
darkfire006
7d1ffba691 update bug catcher wade 2023-07-24 09:59:26 -05:00
darkfire006
b6924b8a6c remove extra joey file 2023-07-24 09:37:40 -05:00
darkfire006
cf10f54515 update joey 2023-07-24 09:36:06 -05:00
JappaWakka
9749ba72bc Mouse support added to mailscreen 2023-07-24 16:22:44 +02:00
darkfire006
3d11732bfb updated payout 2023-07-24 09:14:52 -05:00
darkfire006
db93909252 camper todd phone stuff incl bargain shop 2023-07-24 01:33:10 -05:00
darkfire006
0e37e99016 wrong map check 2023-07-23 22:08:42 -05:00
darkfire006
77a322360c add elm and oak phone numbers 2023-07-23 19:24:06 -05:00
darkfire006
716d3a9f8f use a different logic for the list of dexes 2023-07-23 17:31:23 -05:00
JappaWakka
5ed44da99b Mail system progress
Made it possible to attach already written mail to a pokémon
Added a taken item message if the pokémon that the mail gets attached to already has an item
Replaced the MiniFont and InGameFont on the mail screen with MainFont
Working on mouse support
2023-07-23 20:53:21 +02:00
JappaWakka
a1b1df55c6 Fix Squirtle script in pallet town 2023-07-23 19:53:04 +02:00
JappaWakka
da19fb4571 fix mega stone GameModeItem 2023-07-23 18:39:26 +02:00
JappaWakka
6032fbb6f4 Can take items from pc poké + release message 2023-07-23 18:27:52 +02:00
JappaWakka
c4fd9f19a7 Show accept also when popup has no delay 2023-07-23 16:14:35 +02:00
JappaWakka
36d14ec3d3 Fix exiting new bark without prof elm pokémon 2023-07-23 10:10:49 +02:00
JappaWakka
5b537f9631 Fix Pokédex navigation bugs 2023-07-23 10:04:52 +02:00
JappaWakka
b73023e416 Forgot to actually set the pokedexdata 2023-07-22 21:17:37 +02:00
JappaWakka
22cedcd6c7 Added @Pokedex.ChangeEntry(str,int,bool)
@Pokedex.ChangeEntry(PokeID,EntryType,ForceChange)

PokeID [str] = the Pokémon ID: number (e.g. 19) + optionally Data File Suffix (e.g. 19_alola) or AdditionalValue (201;0)
EntryType [int] = the type that the entry needs to be set to: 0 (undiscovered), 1 (seen), 2 (seen + caught) or 3 (seen + caught + shiny)
ForceChange [bool] = if this is set to true, the game doesn't check whether the Pokédex entry is lower than EntryType before setting it
2023-07-22 20:47:07 +02:00
JappaWakka
5e4f5d830c Correct vb name 2023-07-22 12:32:22 +02:00
JappaWakka
bf2a8aebc6 Return a random move when no attacking moves 2023-07-22 12:06:03 +02:00
JappaWakka
bce86162ef Fix Battle Music being played in the overworld 2023-07-22 11:43:06 +02:00
JappaWakka
7b06b2571a Fix @Player.TurntoAsync for thirdperson 2023-07-22 11:23:27 +02:00
JappaWakka
25e850ccd5 Fix yaw when locking camera 2023-07-22 11:22:48 +02:00
JappaWakka
7691d33a65 Hopefully fixed the water edge battle bug 2023-07-22 10:44:01 +02:00
JappaWakka
ea558ae187 Take item from released Pokémon in PC if any 2023-07-22 10:17:07 +02:00
JappaWakka
0e9623c557 Fix stealth rock 2023-07-21 20:11:17 +02:00
JappaWakka
71bd0eaaef Hopefully fix a music volume bug 2023-07-21 19:30:18 +02:00
JappaWakka
916c69d2b0 Dex form switch and cry tweak 2023-07-21 19:06:43 +02:00
JappaWakka
d200669998 More pokédex tweaking 2023-07-21 18:56:50 +02:00
JappaWakka
c353b9c396 Pokédex tweaks 2023-07-21 18:42:23 +02:00
JappaWakka
fab813c799 Form dex access fix 2023-07-21 17:32:20 +02:00
JappaWakka
d9fe5cdb09 Fix localization tokens for catchlocation/method 2023-07-21 16:32:08 +02:00
JappaWakka
c3fb81a4c4 Pokédex evo/form screen progress 2023-07-21 16:30:12 +02:00
darkfire006
cc60a782f4 line breaks for the shops 2023-07-19 23:49:34 -05:00
darkfire006
d44bc8fd11 connect shop scripts 2023-07-19 23:04:17 -05:00
darkfire006
859e3d27fd mints and gems files 2023-07-19 23:03:57 -05:00
darkfire006
201108ae53 one more shop to include in the proj 2023-07-19 20:59:56 -05:00
darkfire006
a514d4bd61 evo page fixes 2023-07-19 15:10:31 -05:00
darkfire006
a6f02a71ea eeveelution evo screens 2023-07-19 15:00:01 -05:00
JappaWakka
bd67179e6d Switch to pokémon by clicking on them progress 2023-07-19 18:50:58 +02:00
JappaWakka
3176c6b9cb Fix Pokedex switch entry 2023-07-19 17:29:10 +02:00
darkfire006
3f6f42bd8c fix basculin spacing 2023-07-19 00:30:13 -05:00
darkfire006
0d66848c27 allow pokemon with no evos but several forms to have dex screens 2023-07-19 00:25:55 -05:00
darkfire006
1ad3aefb54 tighten spacing for deoxys 2023-07-19 00:25:38 -05:00
JappaWakka
7163093bbc Crash fix and switch tip positioning/color 2023-07-18 19:38:42 +02:00
JappaWakka
51359c7233 Storage System fix 2023-07-18 19:16:31 +02:00
JappaWakka
7f530ab8b7 Forms can now also be traded on GTS 2023-07-18 19:16:19 +02:00
JappaWakka
1a4de5bc97 Form name only when mega evolve or in pokedex
Also:
Added form switch tip in pokedex
Turned some single positions into integers in pokedex
2023-07-18 18:38:36 +02:00
JappaWakka
19cea35bed Pokédex polishing 2023-07-18 17:46:07 +02:00
JappaWakka
338b22fdfd Form switch in pokédex controller controlled + fix 2023-07-18 17:45:47 +02:00
JappaWakka
de6001a97d Switch between forms and dex entries 2023-07-18 13:51:14 +02:00
JappaWakka
47e0594bb5 Improve spacing 2023-07-18 11:17:06 +02:00
darkfire006
fdfc952ac8 forms only, on the evolution page 2023-07-17 22:09:19 -05:00
darkfire006
e6898945e6 split evos 2023-07-17 21:36:37 -05:00
darkfire006
64b54feb76 regional forms manual evo families 2023-07-17 20:36:08 -05:00
darkfire006
3cadf51c31 increase max size of the dex for Gen 9 pre DLC 2023-07-17 17:05:41 -05:00
darkfire006
a6129051da fix sunny day give 2023-07-17 15:35:41 -05:00
JappaWakka
b3d0ef87d4 Forgot some slowpoke evo line stuff 2023-07-17 18:55:01 +02:00
JappaWakka
1c5d45b7ee Slowpoke Evo Line 2023-07-17 18:53:53 +02:00
JappaWakka
dae28c537a Dex Evo/Form Screen Progress + Pichu form fix 2023-07-17 18:46:06 +02:00
JappaWakka
d80a9170c1 Fix Party index resetting when it shouldn't 2023-07-17 18:01:48 +02:00
darkfire006
06a76218c7 fly based on map files contained, not based on if the fly target map is visited 2023-07-16 23:30:39 -05:00
darkfire006
104a504c13 updated tms 2023-07-15 16:30:08 -05:00
darkfire006
ec06fce779 Merge branch 'master' of https://github.com/P3D-Legacy/P3D-Legacy 2023-07-15 16:24:56 -05:00
JappaWakka
6520377758 DexForm progress 2023-07-15 16:12:17 +02:00
JappaWakka
7699621036 Fix Whirlwind move logic 2023-07-15 14:18:00 +02:00
JappaWakka
6440ff0466 Hopefully fix berrydata bugs with new saves 2023-07-15 14:17:40 +02:00
darkfire006
4b6057332f zigzagoon, and evos galarian 2023-07-14 23:32:42 -05:00
darkfire006
29a9ec6ebb gen 9 menu icons, form tests, and new evos 2023-07-14 22:02:56 -05:00
JappaWakka
3065c1960a Pokédex Form Progress 2023-07-14 20:48:32 +02:00
JappaWakka
0b69b854b9 More Pokédex form support progress 2023-07-13 16:15:19 +02:00
JappaWakka
fad33eaa4a Pokédex form support progress 2023-07-12 20:09:06 +02:00
JappaWakka
d2d937e336 Fix form names 2023-07-09 11:55:07 +02:00
JappaWakka
6764062c79 Hopefully get rid of example.dat error messages 2023-07-07 12:05:57 +02:00
JappaWakka
4b97c2ca24 Fixed environment forms 2023-07-07 11:53:35 +02:00
JappaWakka
cb37645746 Fixed gender forms 2023-07-07 11:35:34 +02:00
JappaWakka
e1be26284f Fix season forms 2023-07-07 10:56:16 +02:00
JappaWakka
a90ef6e6d8 A lot of progress on the softcode forms 2023-07-06 20:14:44 +02:00
darkfire006
d88974c617 forgot a bf shop 2023-07-04 15:11:35 -07:00
darkfire006
8a962136cf final items for coin shops 2023-07-04 15:09:33 -07:00
darkfire006
51636194f8 BF shops 2023-07-04 15:08:24 -07:00
JappaWakka
9aec7b9161 Update forms.dat 2023-07-04 14:08:45 +02:00
JappaWakka
8b0a91dfa0 Softcoded forms file filled 2023-07-03 21:02:44 +02:00
JappaWakka
c8c748ad1a Progress of creating softcoded forms 2023-07-03 20:54:32 +02:00
JappaWakka
0ff7969ba2 Nidoran & Basculin fixes 2023-07-03 20:53:57 +02:00
darkfire006
18d7ed6f35 berry store scripts frontier 2023-07-02 03:15:04 -05:00
JappaWakka
b6ba893a5d Coin Case Cap is now a GameRule 2023-07-01 20:47:06 +02:00
JappaWakka
4a7c89cf53 Update ScriptLibrary 2023-06-30 17:56:26 +02:00
JappaWakka
d190ef524d @Player.AddCoins max 50000 + voltorb flip bugfix 2023-06-30 15:45:44 +02:00
JappaWakka
ba4a377d23 Tweak tackle, correct line breaks 2023-06-30 09:55:09 +02:00
JappaWakka
7112b7cdf1 Tweak animations 2023-06-30 09:43:19 +02:00
JappaWakka
581a2c696c Correct tokens for trainer switch prompt 2023-06-29 20:30:10 +02:00
JappaWakka
7e35801db0 Fix PvP battle switching softlock 2023-06-29 20:29:49 +02:00
JappaWakka
20e456ead8 Return regular pokémon name if no nickname 2023-06-27 15:50:57 +02:00
JappaWakka
9035d28a1b Fix being able to surf when a trainer sees you 2023-06-27 14:23:35 +02:00
JappaWakka
f1aeb43b75 Fix Pokémon not falling in battle 2023-06-27 14:23:12 +02:00
JappaWakka
4d65d4bbc8 Fix some commands & script library 2023-06-26 19:23:13 +02:00
JappaWakka
df992888a2 Animation fixes 2023-06-26 18:18:19 +02:00
JappaWakka
a005b60ad9 Fixed some colors in VoltorbFlip tutorial image 2023-06-26 16:37:22 +02:00
JappaWakka
af937955b9 New BattleAnimation type + Confuse Ray animation..
And some fixes
2023-06-26 16:36:52 +02:00
darkfire006
9d024c93df uncomment active items 2023-06-26 09:23:23 -05:00
darkfire006
e0f17269c8 update item description 2023-06-26 09:21:31 -05:00
darkfire006
698d367285 remove wrong shaders 2023-06-26 09:21:21 -05:00
JappaWakka
7a4b03ad3b First half of Confuse Ray done 2023-06-23 11:05:00 +02:00
JappaWakka
d96152d133 Fix EntityMove Battle Animation Type 2023-06-23 11:03:39 +02:00
JappaWakka
030f5a5c74 Fix a wrong color 2023-06-22 14:28:24 +02:00
JappaWakka
a24568cd41 Added @Pokemon.LevelUp(LevelAmount)
This command levels a Pokémon up by the amount of levels (integer) specified in LevelAmount.
If a Pokémon could learn one or more moves on any of the levels between its original level and its level after the command, the command will allow the player to teach each of those moves.
2023-06-22 14:28:12 +02:00
JappaWakka
4b2138d3b2 Fix Background anim fadeout + tweak psychic anim 2023-06-22 10:40:29 +02:00
JappaWakka
1d535bc14d Tweak Psychic background anim speed 2023-06-21 20:02:07 +02:00
JappaWakka
ab55d4d1d7 Reset setDaytime and setSeason on quit 2023-06-21 19:31:39 +02:00
JappaWakka
3200dd9d15 Fix Daytimes when set by command 2023-06-21 19:28:35 +02:00
JappaWakka
a386be5eb6 Added psychic anim & made background anims work
and also added Ice Punch assets to project
2023-06-21 19:24:43 +02:00
JappaWakka
62fea61236 Fix battlescreen having wrong daytime sky 2023-06-21 19:22:24 +02:00
JappaWakka
a6d9a21b72 Fix some GameMode Item stuff 2023-06-21 19:21:34 +02:00
JappaWakka
5d8ae1b1b9 Added Ice Punch Move Animation 2023-06-20 15:56:05 +02:00
JappaWakka
592420abac Fixed rotate BattleAnimation & enddelay...
EndDelay for BattleAnimations is now correctly calculated
Rotate BattleAnimation now actually ends when it's done rotating
2023-06-20 15:55:47 +02:00
JappaWakka
f93fc668c6 Fix Alex's script and sprite 2023-06-18 09:50:19 +02:00
darkfire006
83aa835341 preliminary juice shoppe scripts 2023-06-17 23:15:57 -05:00
darkfire006
8de3030558 increase BP payouts from tower and factory 2023-06-17 22:57:27 -05:00
JappaWakka
7b41b1fa16 Added AlexCorruptor to the Kolben Tower 2023-06-17 19:51:06 +02:00
JappaWakka
9971ed1d5f Added @Pokemon.AddEV(pokeIndex,evStat,evValue)
Adds the evValue argument to the Effort Value stat of a Pokémon in the player's party and makes sure it's legal.
2023-06-17 11:51:35 +02:00
JappaWakka
0e8170a449 @Music.ForcePlay(song) & @Music.Unforce
@Music.ForcePlay(song)
Changes the currently playing music to a new one and prevents the music from being changed by warps or surfing/riding and such.

@Music.Unforce
Allows warps and surfing/riding etc. to change the music again.
2023-06-17 11:37:08 +02:00
darkfire006
3c5f5ee889 fix vb proj furfrou 2023-06-16 14:29:49 -05:00
JappaWakka
ec7392aa22 Fix Furfrou OW texture name 2023-06-14 19:17:19 +02:00
JappaWakka
5617e94f6f Remove unnecessary .ToString 2023-06-14 19:10:27 +02:00
JappaWakka
db35572eb1 Limit Pokémon names to 12 and others to 20 chars 2023-06-14 19:10:04 +02:00
JappaWakka
cda0c79160 Added Bicycle Item for custom GameModes 2023-06-14 10:07:58 +02:00
JappaWakka
a0aa947c5c Added a GameMode Move property and 2 functions
* Fixed an issue with GameMode Items in battles
* Updated the example files for GameMode Items and GameMode Moves
* Maybe fixed something audio volume related

* Made it possible to disable the reduction of PP using the DeductPP (bool) property for GameModeMoves
* Added the new functions "SetTrigger" and "RemoveTrigger" for GameModeMoves:

Function "SetTrigger" checks if a Pokémon does or does not have a certain Status and prevents functions after it from executing if the Pokémon does not have the desired Status.
The function is formatted like this: Function|SetTrigger,Target,Triggers
* "Target" determines which Pokémon's Status is checked and has to be either 0 or 1 (0 = check own Pokémon, 1 = check opponent's Pokémon)
* "Triggers" determines the status effect(s) that should or should not be on the target Pokémon. You can add multiple possible status effects to check for by separating them with a semicolon (;), the values can be: "burn", "freeze", "paralyze", "poison", "badpoison", "anypoison", "sleep", "noburn", "nofreeze", "noparalyze", "nopoison", "nobadpoison", "nopoison", "nosleep"
Function "RemoveTrigger" removes such a trigger so that functions after it are executed
2023-06-13 20:22:35 +02:00
JappaWakka
7bffd5df72 Updated and added Pokémon name tokens 2023-06-13 19:58:37 +02:00
JappaWakka
31834572b0 Reset level when exiting voltorb flip screen 2023-06-12 18:08:25 +02:00
JappaWakka
c287e2ce36 Fix incorrect Voltorb Flip rules 2023-06-12 16:15:45 +02:00
JappaWakka
7be2275050 Reset VoltorbFlip on Pause Menu quit 2023-06-12 15:27:30 +02:00
darkfire006
3074bb8285 fix factory exit warp 2023-06-11 21:55:08 -05:00
darkfire006
16b8b030eb trainer fixes 2023-06-11 21:52:38 -05:00
JappaWakka
a69f5b3f49 Maybe fix a pvp thing 2023-06-11 20:37:19 +02:00
JappaWakka
2e0966dd04 Reset Camera speed for run or ride in scripts 2023-06-11 20:36:41 +02:00
JappaWakka
b91a5f586f Removed unused tokens 2023-06-09 12:11:03 +02:00
darkfire006
71e34ea4c0 add missing texture 2023-06-08 09:20:35 -05:00
JappaWakka
09be466c3c Fixed the build error because of script v1 2023-06-08 16:14:48 +02:00
JappaWakka
f627d9dd55 Update ScriptLibrary 2023-06-08 11:02:48 +02:00
JappaWakka
2e26b2d0c8 Argument for registering amount of bought items
@screen.trade(storeData {itemID,amount,price}{...},canBuy [bool],canSell [bool],currencyIndicator [str],shopIdentifier [str])

shopIdentifier is the value to register to (e.g. if the shopIdentifier = apple then it will register apple_110 if you bought item 110 (pearl) from that shop)
2023-06-08 10:54:51 +02:00
darkfire006
4de02d4b67 add break room script 2023-06-07 21:35:48 -05:00
JappaWakka
512dad9529 Fix incorrect music crash in BattleFactory 2023-06-07 20:44:02 +02:00
JappaWakka
a9ab50f472 Fix invalid menu option crash 2023-06-07 20:36:58 +02:00
JappaWakka
92e611adcb Update battle while in chat 2023-06-07 20:36:41 +02:00
JappaWakka
dc744ea02a Make HM GameMode items possible 2023-06-06 20:35:05 +02:00
JappaWakka
f9602e0a07 Fixed Aragas' poster 2023-06-06 10:11:18 +02:00
darkfire006
741e0c1442 fix npc movement 2023-06-06 00:35:05 -05:00
JappaWakka
ee2a304be2 Forgot a thing 2023-06-05 17:30:19 +02:00
JappaWakka
fb63697ebd Fixed freeze 2023-06-05 17:29:17 +02:00
JappaWakka
c6caf0dbbb Actually fix the water reset this time 2023-06-05 16:12:22 +02:00
JappaWakka
ef0e2709f4 Polished Celadon GameCorner VoltorbFlip map 2023-06-05 15:49:56 +02:00
JappaWakka
228cc77755 Fix water not being reset between gamemodes 2023-06-05 13:50:41 +02:00
darkfire006
840bd17aba add endless break room 2023-06-04 16:32:44 -05:00
darkfire006
67f1f9afcd allow optional breaks 2023-06-04 16:23:08 -05:00
darkfire006
bc69bb36ac update factory maps 2023-06-04 16:05:43 -05:00
darkfire006
00341dff77 slight re order of tower break start camera stuff 2023-06-04 16:05:25 -05:00
JappaWakka
4805bb2836 Made NPC Trade CatchMethod & Location localizable
Also fixed catchlocation with Pokémon add commands
2023-06-04 18:18:33 +02:00
JappaWakka
5b6c902f65 Fix frozen animation 2023-06-04 14:58:39 +02:00
JappaWakka
65ca21139b Fixed wrong item when swapping from pokémon 2023-06-04 14:05:41 +02:00
JappaWakka
63b2134ef6 Added PM chat button for PSS 2023-06-04 12:09:03 +02:00
JappaWakka
aee6d641b1 Accept with mousebutton on PSS 2023-06-04 11:48:24 +02:00
JappaWakka
0600eb4d35 Quit battle if versions don't match 2023-06-04 11:47:52 +02:00
darkfire006
9aa43a95a4 add tents outside the pike 2023-06-04 02:21:11 -05:00
JappaWakka
90810667c9 StrengthRocks can be like wallbills with ModelID 3 2023-06-02 18:36:36 +02:00
JappaWakka
3cc76934e9 Added period after item daily reward messages 2023-06-02 18:35:55 +02:00
JappaWakka
6e1d409a9d Made CatchLocation And CatchMethod Localizable 2023-06-02 10:56:58 +02:00
JappaWakka
522196367a Stop NPC from dancing after done 2023-06-01 16:04:59 +02:00
JappaWakka
315d250405 Added <player.name> to the pokemon add commands 2023-06-01 16:02:04 +02:00
JappaWakka
098feb8e0d Fix TM GameMode Item crashes 2023-06-01 12:40:58 +02:00
JappaWakka
771540a4a0 Make GameMode Items able to be TMs 2023-05-31 20:37:02 +02:00
TheOmegaGhost
36b4800690 Added Sea Plane Ticket and Frontier Stairs 2023-05-31 12:17:53 -03:00
JappaWakka
1467b907f4 Made GameMode Items able to start scripts on use 2023-05-31 16:25:38 +02:00
JappaWakka
ac4e5801c2 CInt(-1).ToString -> "-1" correction 2023-05-31 12:34:22 +02:00
JappaWakka
319ad9b231 Added @item.select and <inventory.selected>
@item.select(AllowedPages,AllowedItems)
Opens an item select screen with only the specified item type pages (separated with ";", e.g. "0;1;2" or "standard;medicine;plants") and possible item IDs (single items separated with ";", or with a "-" if you want a range, e.g. "2000-2066"
Both variables are optional. If AllowedPages is empty, all pages are allowed. If AllowItems is empty, all items are allowed.

<inventory.selected>
Returns the ID of the item selected in the screen opened by @item.select(AllowedPages,AllowedItems)
2023-05-31 12:34:11 +02:00
darkfire006
4e4b1bac73 add juice properties to berries 2023-05-30 17:54:26 -05:00
darkfire006
a6170d0e01 gate exterior 2023-05-30 15:11:45 -05:00
darkfire006
094b90d4c0 line breaks added 2023-05-30 15:10:30 -05:00
JappaWakka
57e0bf2f15 Added pluralnames to gamemode item tokens 2023-05-30 17:56:47 +02:00
JappaWakka
bb68e96bd5 Inventory Screen tweaks 2023-05-30 16:36:32 +02:00
JappaWakka
551a1f3659 Evo Items and Stones now get removed when used
from the inventory
2023-05-30 15:38:13 +02:00
JappaWakka
2d0ad05048 Fixed GameMode evolution items crash 2023-05-30 15:23:18 +02:00
JappaWakka
451115d7aa GameMode Items properties work now 2023-05-30 14:51:43 +02:00
JappaWakka
9b702bd1bc Include example in project 2023-05-30 13:32:03 +02:00
JappaWakka
5363db90cf Added example and fixed some small things 2023-05-30 12:00:18 +02:00
JappaWakka
e30d5b017d Implemented GameMode Item Use, needs testing 2023-05-30 11:38:59 +02:00
JappaWakka
a5a8162f5f Adjusted token and position coin counters 2023-05-30 10:39:17 +02:00
JappaWakka
5cd5e00587 Change order of VoltorbFlip messages 2023-05-30 09:59:03 +02:00
JappaWakka
a2718ac639 Added missing Back token for VoltorbFlip 2023-05-30 09:23:23 +02:00
darkfire006
37e1c62ff5 add celadon gamecorner 2023-05-30 02:09:31 -05:00
darkfire006
8808c8f9f8 small typo 2023-05-30 02:09:03 -05:00
darkfire006
5bacef9eee looping logic fix 2023-05-30 02:00:46 -05:00
darkfire006
a11f46dcd6 coin scripts 2023-05-29 20:33:16 -05:00
darkfire006
ddbbd21043 allow coins to be used in shops and track as stats 2023-05-29 20:32:57 -05:00
darkfire006
2e1b66a45d add back from info screen and fix a line wrap 2023-05-29 20:32:31 -05:00
darkfire006
40b844e4d9 allow for saving and loading of coins 2023-05-29 20:31:42 -05:00
JappaWakka
d13b5eb8d3 GameMode Item Preparations
Implemented GameMode Mega Stones
2023-05-29 15:33:57 +02:00
JappaWakka
ba98f40394 Mouse wheel can reach every item in bag now 2023-05-29 10:37:32 +02:00
JappaWakka
ca29595d25 Fix project 2023-05-29 10:26:27 +02:00
JappaWakka
b8535774aa Merge branch 'VoltorbFlip' 2023-05-29 10:18:56 +02:00
JappaWakka
2a3579f684 Added menu with tutorials, removed gradients
Also improved some tokens and fixed the quit button on the How To Play tutorial image
2023-05-29 09:57:39 +02:00
darkfire006
efba920dda sea plane scripts 2023-05-29 02:26:21 -05:00
darkfire006
45cc53a6ef update level tags 2023-05-29 00:22:53 -05:00
darkfire006
a0e04eda44 add sea plane item 2023-05-28 23:18:08 -05:00
darkfire006
13c0c56f2b frontier gate scripts 2023-05-28 22:53:40 -05:00
darkfire006
21fef0dca0 remove frontier gate from R40 and remake as g/s layout 2023-05-28 19:28:39 -05:00
darkfire006
6d3b35a831 remove fake shadows from tower lobby 2023-05-28 19:26:03 -05:00
darkfire006
66bdbe5b7f new gate in frontier 2023-05-28 19:21:37 -05:00
darkfire006
e5a1a7d1f0 frontier gate scripts 2023-05-28 19:16:44 -05:00
JappaWakka
3b1f3075e8 Added New Level Menu and Game Info stuff
still need to test
2023-05-28 21:34:20 +02:00
darkfire006
24f47ebbbf remove pal park from map 2023-05-28 14:08:15 -05:00
darkfire006
02824d1609 battle tower endless break room 2023-05-28 14:06:32 -05:00
JappaWakka
37580a3336 Make sure quit question reappears 2023-05-28 18:52:51 +02:00
JappaWakka
630cf4f9c9 New Level Menu preparations 2023-05-28 09:58:33 +02:00
JappaWakka
1a1e8bcf9b Fix token and quit button text 2023-05-28 09:54:20 +02:00
JappaWakka
088bb1ceb2 Incorrect Quit Correction + Localizable QuitButton
And some corrected tokens
2023-05-27 19:27:48 +02:00
JappaWakka
7d9db111d2 Missing tokens and better total coins counter 2023-05-27 17:48:32 +02:00
JappaWakka
348ba89b15 Add localization for Voltorb Flip and Coin Case 2023-05-27 16:52:36 +02:00
JappaWakka
e2793e6a03 Fix TotalFlips 2023-05-27 16:23:21 +02:00
JappaWakka
39ce4458f1 Fix Consecutive Wins 2023-05-27 16:10:30 +02:00
JappaWakka
966525b14d Textbox always drawn on top, position tweak 2023-05-27 15:44:01 +02:00
JappaWakka
2314ce6834 Sound effects, jingles and some minor fixes 2023-05-27 15:40:38 +02:00
JappaWakka
4aeecc99d1 Do move memo cursor even when tile = flipped 2023-05-27 15:14:35 +02:00
JappaWakka
bd38e5c2ab VoltorbScreen fully implemented! 2023-05-27 15:09:41 +02:00
JappaWakka
99bf455a6e It doesn't work perfectly but something happens 2023-05-25 18:37:37 +02:00
darkfire006
50c102fe89 add battle dome 2023-05-25 00:12:30 -05:00
darkfire006
f071823869 Battle Hall added 2023-05-24 23:43:07 -05:00
JappaWakka
046df24c43 Gave the VoltorbFlipFont the right color 2023-05-24 20:48:21 +02:00
JappaWakka
791104ee49 Adjust positions row & column counters 2023-05-24 15:42:09 +02:00
JappaWakka
e9013a9371 A lot of progress again :D
Improved implementation of quiting Voltorb Flip minigame
Properly implemented max amount of coins you can win
Implemented command to start a Voltorb Flip minigame including adding won coins to the coin case afterward
2023-05-24 14:30:38 +02:00
JappaWakka
8bf3c7daf3 Fix level drop system, adjust font, more drawing 2023-05-24 11:49:18 +02:00
darkfire006
8747596a60 frontier map and fly points 2023-05-24 00:55:29 -05:00
darkfire006
7afa1a916c add battle castle maps 2023-05-24 00:55:03 -05:00
darkfire006
0a9e7f07e7 battle tower new exterior 2023-05-23 17:28:14 -05:00
JappaWakka
732103bab8 Coin counter amount animation + row & column Font 2023-05-23 15:11:22 +02:00
JappaWakka
5656e75778 Draw cursor, memo menu + button and memos on tiles 2023-05-23 14:14:15 +02:00
darkfire006
ce4261445b battle pike maps 2023-05-22 22:28:55 -05:00
JappaWakka
68c210b344 Forgot to include in project 2023-05-22 20:33:13 +02:00
JappaWakka
e25295ae48 Prepared some textures 2023-05-22 20:32:22 +02:00
JappaWakka
ce6d8344a6 A lot of progress on Voltorb Flip 2023-05-22 19:33:09 +02:00
darkfire006
6e0dd748d8 add signs and a few npcs to central plaza, connect to factory 2023-05-21 22:12:07 -05:00
darkfire006
bbacf12cd5 make battle factory exterior map 2023-05-21 22:11:34 -05:00
darkfire006
20d52471ad remove battle frontier flag collision 2023-05-21 22:11:04 -05:00
darkfire006
d5c3e33947 move battle frontier fly point and add inset map reference 2023-05-21 22:10:48 -05:00
darkfire006
4b48b8104f add frontier turning sign structure 2023-05-21 22:10:00 -05:00
darkfire006
c2d6d70d43 frontier main exterior nearly done 2023-05-21 17:53:53 -05:00
JappaWakka
956c6147cd Generate sums of voltorbs & coins, rows & columns 2023-05-21 20:40:12 +02:00
JappaWakka
5ab3fe7d5b Working on the controls and cursor positioning 2023-05-19 17:02:59 +02:00
JappaWakka
ff0111ecdc Started Development on Voltorb Flip
I think... if I've done everything I did so far correctly, I should have a level 1 grid of tiles, it's just not visible yet and you can't interact with it in any way, so I have no idea if it actually does what I want it to do yet XD
2023-05-18 20:25:38 +02:00
JappaWakka
0fef783154 Use correct name for OpenMenu keybinding 2023-05-18 17:14:19 +02:00
darkfire006
148be15388 fix gen 6 trade evos 2023-05-13 20:42:20 -05:00
JappaWakka
4363f3f4ed Hopefully fix egg being able to switch by move 2023-05-13 20:03:23 +02:00
JappaWakka
333873fdae Fix dancing NPCs rounding off position when done 2023-05-13 19:58:51 +02:00
JappaWakka
c8cf5caeac Fix Structure offset inside another structure 2023-05-13 19:58:12 +02:00
JappaWakka
ba2a970b11 Make it possible to spawn NPC w/ rival/playerskin 2023-05-09 18:27:27 +02:00
darkfire006
a7013a19bc 0.59.3 wrap up 2023-05-07 17:09:33 -05:00
JappaWakka
5a296234f4 Fix shadow and text positions of map screen 2023-05-03 16:28:19 +02:00
JappaWakka
b3becd5653 Fix no full restore message at full hp 2023-05-03 16:03:56 +02:00
JappaWakka
a62c78e9ee Fix Full Restore not healing opp confusion 2023-05-03 15:59:30 +02:00
JappaWakka
afb5271e34 Fix Max Ether 2023-05-03 15:53:21 +02:00
JappaWakka
d14ec56323 Get rid of Minifont in Map Screen 2023-05-02 19:15:20 +02:00
JappaWakka
cf437a1e88 Only play poison sound with poisoned pokémon 2023-05-02 13:36:57 +02:00
JappaWakka
77cfefd598 Play sound when poison pokémon lose hp when walk 2023-05-02 13:31:20 +02:00
JappaWakka
b23c0455e6 Added missing run key from <system.button(str)> 2023-05-02 11:26:14 +02:00
darkfire006
9c9ae00f39 oh wait new year.... 2023-05-02 00:56:42 -05:00
JappaWakka
52ee3da1a2 @npc.spawn has argument for moverectangles now 2023-04-28 09:21:04 +02:00
JappaWakka
b02542ff67 Fix offline savegames not reset when quit new game 2023-04-28 09:20:27 +02:00
JappaWakka
2689467a7c Moves can't be learned twice after level ups 2023-04-28 09:18:41 +02:00
JappaWakka
fc1ff4854d Custom Phone Contacts are possible in GameModes 2023-04-28 09:17:10 +02:00
JappaWakka
09da089212 Fix overworldpoison 2023-04-28 09:13:04 +02:00
darkfire006
cec5c0c172 0.59.2 wrap up commit 2023-04-26 12:26:16 -05:00
JappaWakka
489af57626 Hopefully fix waterfalls this time 2023-04-20 15:54:53 +02:00
JappaWakka
46c814410c Fix (destiny knot) IV inheritance 2023-04-19 14:56:57 +02:00
JappaWakka
2dcd9a69b9 Forgot to include Destiny Knot in project 2023-04-15 11:14:21 +02:00
JappaWakka
f82f001026 Fixed Waterfall 2023-04-15 11:14:06 +02:00
darkfire006
80468415f2 make bill's PC visible only after having pokemon 2023-04-11 09:26:02 -05:00
darkfire006
76648bd5ba
Merge pull request from djg2008/patch-2
Mystery Events should appear on all Pokecenter PCs
2023-04-11 09:18:23 -05:00
darkfire006
9988993c54
Merge pull request from djg2008/patch-3
Your Room PC is now a normal PC
2023-04-11 09:16:27 -05:00
JappaWakka
1bdd6e1c55 Check if opponent is frozen before defrosting 2023-04-08 20:12:42 +02:00
JappaWakka
ccad3e1f21 Implemented Destiny Knot item and added to route27 2023-04-08 17:36:22 +02:00
djg2008
11cd9432db
Your Room PC is now a normal PC
You can also combine with the script committed above to keep Mystery Events on the PC menu (and thus keep Mystery Events in Your Room).

But now, if you can access Bill's PC, you can also access the Storage System from Your Room (amongst other PC menu options!)
2023-04-07 20:29:46 +01:00
djg2008
e93ee4a2f8
Mystery Events should appear on all Pokecenter PCs
So you can enable/disable your mystery event bonuses from any Pokecenter nearby.
2023-04-07 20:20:43 +01:00
JappaWakka
f34ddccb94 Tweak Ember 2023-04-04 15:28:38 +02:00
JappaWakka
54215c80ea Fixed backdrops not rendering and being stretched 2023-04-04 11:32:11 +02:00
JappaWakka
b12ae2026d Fix namerater inconsistencies 2023-04-03 19:22:42 +02:00
JappaWakka
17ef30605c Fixed wrong bugcatchingconstest item pickup type..
By adding the IsOutside map Property
2023-04-01 09:15:57 +02:00
JappaWakka
ba07491069 Fix backdrop water 2023-04-01 08:58:23 +02:00
JappaWakka
aa105b38a2 Fix scald not defrosting opponent...
Also added defrosting the opponent as a gamemode attack function
2023-04-01 08:58:01 +02:00
JappaWakka
f90152c506 Implemented Torment move 2023-03-27 17:59:57 +02:00
JappaWakka
ae5a26f8e3 Fix defrosting moves not working
By putting the move defrost check before the freeze animation/move cancelation check
2023-03-27 17:26:07 +02:00
JappaWakka
f1484c77ca Fix for PP items in battle not starting round 2023-03-27 17:09:08 +02:00
darkfire006
cc582b21fd
Merge pull request from djg2008/patch-1
Update barktown.poke
2023-03-26 14:14:03 -05:00
JappaWakka
779fda3885 Backdrop improvements...
Un-mirrored texture mapping
Added dynamic texture size based on the height of the backdrop texture
Backdrop color matches the daytime now
2023-03-26 19:40:25 +02:00
JappaWakka
b2f6c98f8e Fix Infinite PP for opponents 2023-03-23 12:06:17 +01:00
JappaWakka
734ab3f4e9 Fix Strength Rocks 2023-03-23 11:40:16 +01:00
djg2008
88fdeffdd1
Update barktown.poke
Removed a duplicate Tentacool spawn from Old Rod encounter-group.
2023-03-22 21:43:29 +00:00
JappaWakka
ce165c1e57 Fix for battlemaps with scriptblocks on them
like battle\underwatercave\underwater.dat
2023-03-19 19:11:12 +01:00
JappaWakka
774125da9e Fix struggle naming the wrong pokémon 2023-03-18 20:50:34 +01:00
JappaWakka
b9f6637365 Made trainer battle intros look better
And also made it so that the battleintros get skipped if the _intro music is equal to or smaller than 1 second (useful for silent intros)
I also made sure trainer sprite scaling and positioning is correct
2023-03-18 20:47:12 +01:00
JappaWakka
5819ca30fe Fix for crash related to TrainerAI and using items 2023-03-18 19:56:52 +01:00
JappaWakka
a806284149 Fix cancel pp changing items skipping battle turn 2023-03-15 15:40:46 +01:00
JappaWakka
390d8086dd Fix protean change with struggle 2023-03-15 15:39:59 +01:00
JappaWakka
2987cbb177 Pokémon no longer choose taunted status moves
but instead pick another move. if there are no usable moves left, the pokémon uses struggle
2023-03-09 20:00:20 +01:00
JappaWakka
66046800d3 Pokémon will no longer choose disabled moves...
but instead pick another move. if there are no usable moves left, the pokémon uses struggle
2023-03-09 19:36:47 +01:00
JappaWakka
9a7543fb33 Fix for StrengthRock softlock 2023-03-09 17:14:56 +01:00
darkfire006
ad6c008a98 missing a 0 2023-03-07 17:52:29 -06:00
darkfire006
7ccfe3184f fix alolan related evos from allowing all relevent conditions 2023-03-03 09:11:24 -06:00
JappaWakka
e5ee6cb145 Temporarily comment out opponent switching 2023-03-03 12:28:30 +01:00
JappaWakka
628528b018 Fix daycare pokémon not showing correct form 2023-02-27 21:03:36 +01:00
JappaWakka
0ae62ceaef Have both double trainer npcs show up in battle 2023-02-27 20:25:16 +01:00
JappaWakka
19d88a3bda Tweak horizontal camera speed for controllers 2023-02-27 20:12:18 +01:00
JappaWakka
734ece683c Fix battle transition from displaying twice 2023-02-27 20:01:57 +01:00
JappaWakka
ffefa421c4 Fix faint Pokémon message showing twice 2023-02-27 20:01:28 +01:00
JappaWakka
611e9688b9 Fix faint Pokémon message not showing...
when the Pokémon faints due to effects not caused by attacks/moves
2023-02-27 19:41:57 +01:00
JappaWakka
1114c3ae36 Fix TM/HM bootup sound effect 2023-02-27 19:19:07 +01:00
JappaWakka
f5143a710a Mapped Pokégear to Back button on controllers
And enabling/disabling controller input to F6
2023-02-27 12:49:52 +01:00
darkfire006
2d92359734 prevent shiny related crashes for lapras and Mewtwo 2023-02-26 20:41:41 -06:00
darkfire006
0670fb54d7 fix surges rematch galvantula moveset 2023-02-26 20:39:47 -06:00
JappaWakka
9e991c88e4 Fix for forms getting wrong hidden ability 2023-02-26 17:40:25 +01:00
JappaWakka
2f0cccb052 Entering battle without pokémon triggers blackout 2023-02-26 17:16:39 +01:00
JappaWakka
022597262c Fixed replace fainted pokémon twice bug 2023-02-26 16:05:47 +01:00
JappaWakka
daef33a886 Prevent wild & trainer battles without pokémon
when the player has no Pokémon in their team, wild and trainer battle commands don't do anything
2023-02-26 15:26:07 +01:00
JappaWakka
94247a7754 Fix GameModeSelectionScreen accent colors 2023-02-26 15:21:36 +01:00
JappaWakka
bd647ef071 Forgot to save Player.vb 2023-02-26 12:48:42 +01:00
JappaWakka
a371268441 Remove Pokémon if it faints due to poison damage..
with the DeathInsteadOfFaint GameRule set to 1
2023-02-26 12:38:25 +01:00
JappaWakka
4a38a43e1f Fix CanUseHealItems GameRule 2023-02-26 12:37:29 +01:00
darkfire006
6dd4750770 fix shiny suicune causing vermilion crashes 2023-02-25 21:32:48 -06:00
JappaWakka
ec5f551bd2 Fixed empty line before message with rare candy 2023-02-23 21:17:51 +01:00
JappaWakka
42e625b5f4 Fix tackle attack animation softlocking 2023-02-23 21:14:01 +01:00
JappaWakka
f50a62d3fc Consistency in SwitchPokemonQueryObject 2023-02-23 21:13:46 +01:00
JappaWakka
36a5ebf936 Fix opponent switching shenanigans 2023-02-23 12:58:43 +01:00
JappaWakka
5a6711f126 Prevent renaming issues with spaces 2023-02-23 12:30:24 +01:00
JappaWakka
d9e21e0b6d Merge branch 'master' of https://github.com/P3D-Legacy/P3D-Legacy 2023-02-23 12:29:10 +01:00
JappaWakka
b75de6fe5e Fixed BattleMapOffset not being set to 0 2023-02-23 12:27:48 +01:00
JappaWakka
75378268c0 Fix item usage when 0 remaining 2023-02-23 12:09:53 +01:00
JappaWakka
ca410ee53b Fix Protean ability 2023-02-23 12:09:22 +01:00
darkfire006
de45805b89 actually break the rock 2023-02-20 23:18:34 -06:00
darkfire006
e75edaa7ff the only remaining / are for script math 2023-02-20 11:15:26 -06:00
darkfire006
91fc1bd1b9 fix caps in a map path 2023-02-20 11:02:28 -06:00
darkfire006
a3444d53e0 swap / with \ in script/map paths 2023-02-20 11:02:12 -06:00
darkfire006
cf0ec7f69d 3 more wrong silence keywords 2023-02-14 22:17:38 -06:00
darkfire006
c39f834ff9 fix nilllzz script lock up 2023-02-14 22:17:13 -06:00
darkfire006
24ba4b4378 fix enethil text 2023-02-13 18:26:02 -06:00
JappaWakka
300aa87738 Fixed slideblock and waterfall 2023-02-12 18:57:20 +01:00
JappaWakka
10a2faa62c Remove the word Berry from the Berry names 2023-02-12 16:20:47 +01:00
JappaWakka
f77c45d102 Prevent walking into slideblocks from the back 2023-02-12 12:05:45 +01:00
darkfire006
9c7b511be4 change no music keyword for champ battles 2023-02-09 08:58:23 -06:00
JappaWakka
940cfb91ad Include Emblem Background 2023-02-09 13:44:54 +01:00
JappaWakka
3414d31b62 Failsafe for no usable audio devices 2023-02-09 13:44:35 +01:00
darkfire006
96f6bc2a42 fix Mt moon moon stone not repeating 2023-02-07 17:21:15 -06:00
darkfire006
15a34ad711 fix alolan raichu type 2023-02-07 17:21:02 -06:00
JappaWakka
72d653f65f Fix incorrect character list in rename screen
Also added space and a failsafe for if the name ends with a space
2023-02-02 15:59:26 +01:00
darkfire006
b27136d6bf Revert "Make Eevee stone evolve into Glaceon & Leafeon"
This reverts commit 4042783c4cb84a48abe1fa79aebb1abe44a3d99e.
2023-02-02 08:42:50 -06:00
darkfire006
614c5fcdac vermilion fixws 2023-02-02 08:42:24 -06:00
JappaWakka
1c0ba6b803 Fix Ember Rotation Direction 2023-02-02 14:58:49 +01:00
JappaWakka
fabab5e32e Finally fixed protean not resetting types 2023-02-02 14:58:33 +01:00
JappaWakka
f30ed7af8f Fix some multiturn moves using pp every time
Outrage, Petal Dance, Thrash, Uproar & Rollout now only use pp the first time
2023-02-02 13:54:33 +01:00
JappaWakka
4042783c4c Make Eevee stone evolve into Glaceon & Leafeon 2023-02-02 12:14:50 +01:00
JappaWakka
628f379a28 Fix opponent switching errors bug 2023-02-02 11:19:51 +01:00
JappaWakka
4d1899037b Fix item swap bug 2023-02-02 10:32:26 +01:00
JappaWakka
74d5981c22 Fixed items not being removed from inventory 2023-01-30 19:45:36 +01:00
JappaWakka
1503cecb1a Fix rare candy blank textbox 2023-01-30 19:22:24 +01:00
darkfire006
09fec864e7 fix her pokemon 2023-01-28 23:56:31 -06:00
JappaWakka
4464766202 Removed unnecessary checks for battlemapoffset 2023-01-27 18:31:48 +01:00
JappaWakka
5b7147c720 Added Able/Unable label when using evolution stone 2023-01-27 18:21:27 +01:00
JappaWakka
9b7e52e9e6 Fixed items usable when none are left 2023-01-27 18:20:45 +01:00
JappaWakka
32bd5ed36e Fix rare candy blank textbox bug 2023-01-27 17:48:10 +01:00
JappaWakka
a15414bf24 Fix roar not ending wild battle
Made ability suction cups prevent Roar from hitting
2023-01-27 17:43:02 +01:00
darkfire006
7d300c93d5 improve sticky descriptions 2023-01-27 10:32:19 -06:00
darkfire006
f95034531b fix some trainer typos 2023-01-27 10:32:06 -06:00
JappaWakka
8f372b16f2 Fix item swap duplication (for real hopefully) 2023-01-27 13:17:25 +01:00
JappaWakka
cf5ee111be Improved emblem display including popup
Text is now somewhat more readable
2023-01-26 20:21:53 +01:00
JappaWakka
55106f8450 Can't switch if not in original position 2023-01-23 12:27:36 +01:00
JappaWakka
48d3a0505b Weather render distance and color tweaks 2023-01-23 12:17:57 +01:00
JappaWakka
c94f7a2b1b Fix requests not being blocked in bug contest 2023-01-23 12:12:43 +01:00
JappaWakka
d3bde7eef0 Fixed some visual bugs related to pvp and trading
and replaced some fonts
2023-01-23 12:12:08 +01:00
JappaWakka
4f2513dac9 Fix no switching softlock 2023-01-23 11:31:21 +01:00
JappaWakka
72fceebcb0 Fix repels not being removed from bag 2023-01-23 11:15:54 +01:00
JappaWakka
2b0531ed8a Hopefully fix egg hp > maxhp 2023-01-23 11:15:30 +01:00
darkfire006
4c165742b9 fix name case 2023-01-19 08:56:25 -06:00
JappaWakka
ed20fd14e8 Fixed Frillish & Jellicent & Spiky-Eared Pichu
and others
2023-01-18 20:54:17 +01:00
JappaWakka
b8ffdb73c3 Teleport doesn't fail anymore if opp is faster 2023-01-18 20:13:04 +01:00
JappaWakka
7e7dae0d20 Fixed trick/item duplication and protean 2023-01-18 20:06:21 +01:00
JappaWakka
686cef84fe Tweaked weather colors and chances 2023-01-17 19:27:15 +01:00
JappaWakka
02aef02183 Adjust White Flute description 2023-01-17 18:37:08 +01:00
JappaWakka
6d5c798321 Remove Disable when ResetTemp is called
At the end of battle
2023-01-17 18:22:18 +01:00
JappaWakka
d839b64689 Can't choose a move if it's disabled anymore 2023-01-17 18:21:30 +01:00
JappaWakka
f77961afff Remove battlescreen update from InventoryScreen 2023-01-17 18:20:52 +01:00
darkfire006
074ee8bbfe remove single use TMs from hard mode 2023-01-15 18:53:32 -06:00
JappaWakka
7dedbb7ec2 Fix for non-HM field moves not visible in menu 2023-01-15 20:46:26 +01:00
JappaWakka
15b974fe3f Fixed walkthrough table 2023-01-15 20:40:56 +01:00
JappaWakka
a494f19dbb Pokémon misspelt as Pokemon fixed 2023-01-15 20:22:29 +01:00
JappaWakka
529e95ad2e Fixed Fishing Rod encounter crash 2023-01-15 20:01:59 +01:00
JappaWakka
aa982addbe Fixed Pokémon still encountering with debugwalk 2023-01-15 19:45:29 +01:00
JappaWakka
6562aba3de move learn Able/Unable overlapping text fix 2023-01-15 19:45:03 +01:00
JappaWakka
4b0cfde2fc Replaced font in BattleMenu 2023-01-15 19:26:05 +01:00
JappaWakka
2e9d7bdd26 Fix bridge appearing in front of player 2023-01-15 14:43:58 +01:00
JappaWakka
0d3041d1d7 RepelItem not displaying a message fixed 2023-01-15 14:39:25 +01:00
JappaWakka
724ddabc88 Remove battlescreen update from party view 2023-01-15 14:34:44 +01:00
JappaWakka
748a6e8bcc Fix for Pichu and spiky-eared variant 2023-01-15 14:33:13 +01:00
JappaWakka
d5e46df65e Revert Recycle change 2023-01-15 11:53:34 +01:00
JappaWakka
cdccbfcc67 Fix for Trick and Recycle 2023-01-15 11:40:43 +01:00
JappaWakka
678cd35fde Forgot a period in the exp. share name 2023-01-15 09:58:30 +01:00
JappaWakka
94541ab68e Removed period after Route 30 on sign 2023-01-15 09:36:56 +01:00
JappaWakka
cc2d46153d Disable Shift BattleStyle in PvP 2023-01-15 09:34:42 +01:00
JappaWakka
ffdc28dd85 Fix for Protean Ability not resetting 2023-01-15 09:28:29 +01:00
JappaWakka
89d074e1e5 Fix Battle Spot intro music 2023-01-14 22:01:10 +01:00
JappaWakka
2ce18dbc97 Fix item localization & missing item name 2023-01-14 21:50:41 +01:00
JappaWakka
3a4a4693be Hopefully fix opponent texture not displaying 2023-01-14 21:05:09 +01:00
JappaWakka
d0ea913902 Added GameRule for forgetting HM moves
CanForgetHM
0 = HM moves can't be forgotten
1 = HM moves can be forgotten
2023-01-14 21:04:16 +01:00
JappaWakka
e14e4c660c Added gamerule for Single Use TMs
SingleUseTM
0 = Use TMs as many times as you like
1 = TMs can only be used once
2023-01-14 21:03:12 +01:00
JappaWakka
229b36a90b Added missing space to Guard Swap text 2023-01-14 21:01:19 +01:00
JappaWakka
88807bf0aa Visual fixes for chat windows 2023-01-14 21:01:03 +01:00
JappaWakka
77271a4b67 Forgot some battle animation things 2023-01-14 20:58:17 +01:00
JappaWakka
5a8fdf1058 Fix GameRule crash 2023-01-14 14:21:24 +01:00
JappaWakka
3273cf8edc Added HardGameRules to Kolben data file 2023-01-13 17:42:53 +01:00
JappaWakka
4054e7bcaa Added Harder Difficulty Gamerules + Fix OW Poison 2023-01-13 17:35:54 +01:00
JappaWakka
2de791ab2b Fixed blackoutscreen font 2023-01-13 17:31:17 +01:00
JappaWakka
53e77a1c98 Added blackoutscreen when all fainted by poison 2023-01-13 17:30:44 +01:00
JappaWakka
7723db708b Added missing GameRules to Kolben GameMode 2023-01-13 16:39:49 +01:00
JappaWakka
594addda47 frontier\battletower\88.trainer intro fix 2023-01-13 15:05:51 +01:00
JappaWakka
dfbaaf2b33 BattleScreen + BattleCatchScreen softlock fixes 2023-01-13 14:46:44 +01:00
JappaWakka
9970d892de Added a line break to catch message 2023-01-13 14:15:43 +01:00
JappaWakka
f2e093072e Added failsave to fix missing Level music crash 2023-01-13 14:13:44 +01:00
JappaWakka
450b060271 Made missing intro song only log on debug 2023-01-13 14:12:46 +01:00
JappaWakka
dc454d2a68 Temporarily disabled animations for pvp battles 2023-01-13 14:09:21 +01:00
JappaWakka
7ae9ebaa50 Multimove Bug Fixed 2023-01-13 14:07:35 +01:00
darkfire006
342f3924b1 disable pokegear in contest 2023-01-08 21:29:05 -06:00
darkfire006
2feb3052db remove extra dive patch 2023-01-08 21:28:44 -06:00
JappaWakka
554569d45d Chatscreen battle softlock fix 2023-01-08 15:44:18 +01:00
JappaWakka
f260ec0900 Fix for trainer skins and pokégear trade buttons 2023-01-08 15:43:57 +01:00
darkfire006
3ea6b65cac remove annoying case insenetivity 2023-01-08 01:49:10 -06:00
darkfire006
9d65d60d30 fixes for kolben tower trainers 2023-01-08 01:48:55 -06:00
darkfire006
0719deb7c2 fix pokegear contact typos 2023-01-08 01:48:31 -06:00
darkfire006
d8bd964b3f wix pathing issue for eastern entrance contest start 2023-01-08 01:48:18 -06:00
JappaWakka
728739760d Added GameRule "OverworldPoison"
if set to 0, no overworld poison (default)
if set to 1, overworld poison until fainted
if set to 2, overworld poison until 1 hp, then it's cured
2023-01-06 12:16:41 +01:00
JappaWakka
a1a84bbe40 Fixed escape rope and teleport not stopping surf 2023-01-04 20:14:38 +01:00
JappaWakka
260ff56150 Fixed HealingMachine CameraDistanceDelta 2023-01-04 20:14:04 +01:00
JappaWakka
7c74e541be Fixed certain front sprites not being found 2023-01-03 19:57:19 +01:00
JappaWakka
353224f269 Replaced Tao_Legend_Battle music 2023-01-03 13:13:15 +01:00
JappaWakka
add7f4ac6f Fixed item name not being found with localizations 2023-01-02 15:27:59 +01:00
JappaWakka
30c368f9be Replaced all songs with higher quality ones
Also changed the tao trio music to the Black&White Legendary Theme (if not desired, I can change it back to the tao trio theme, but I'll have to go look for a better sounding gbc remix than we had before)
2023-01-02 13:51:49 +01:00
darkfire006
ca6d063e2c put all possible attack variables in pound for demonstration purposes 2023-01-01 22:26:37 -06:00
darkfire006
1456f6e71a fix missing blocks 2023-01-01 22:13:31 -06:00
JappaWakka
65e9fddb6d Stop player's money from being negative 2022-12-31 22:03:25 +01:00
JappaWakka
73727edb6c Added @Player.RemoveMoney(int) 2022-12-31 21:04:11 +01:00
JappaWakka
2328ca5c67 Fixed EndRound custom move effect 2022-12-31 13:16:32 +01:00
darkfire006
eeae37a495 fix RT desk collision 2022-12-29 21:23:10 -06:00
darkfire006
3db8b79528 Fix Picknicker liz 2022-12-29 21:08:32 -06:00
darkfire006
3a4adda6ba Implement Lum Berry 2022-12-29 21:08:20 -06:00
darkfire006
6c6eba362f fix Luck description 2022-12-29 20:49:18 -06:00
darkfire006
33a9d0ad5b added default message for BSOD script 2022-12-29 20:47:20 -06:00
darkfire006
e95de32ad9 fix move capitalization 2022-12-29 20:47:07 -06:00
JappaWakka
0432aff0e7 @Player.ShowBattleAnimations(0 or 1)
Enables or disables battle animations
2022-12-26 21:02:52 +01:00
JappaWakka
68a9d197e5 Improved the Custom Move commands 2022-12-26 20:54:00 +01:00
JappaWakka
8338c385ee Added Switch & EndRound for Custom Moves 2022-12-26 13:05:22 +01:00
JappaWakka
a0ee905c85 Improved ShowImage scaling with smaller resolution 2022-12-24 14:21:05 +01:00
JappaWakka
f7c97ec7c9 Implemented Disable move & fixed Cursed Body turns
When Cursed Body successfully executes, it now always disables moves for 4 turns too
2022-12-22 14:48:06 +01:00
JappaWakka
b3422ba82a EggCreator only colors spots if not enough colors 2022-12-21 21:29:57 +01:00
JappaWakka
8547c26a3e Fixed Sky Attack crit chance 2022-12-21 17:21:58 +01:00
darkfire006
ce1b178a2c add extra wind and slicing moves
these are mostly moves that are not in SV so are left a maybe on if they are these, also fixed caps for SilverWind
2022-12-21 01:26:31 -06:00
darkfire006
fe8ef2351d G9 cresselia stat change 2022-12-21 01:15:45 -06:00
darkfire006
f2ca0927e0 Update for G9
reduce healing move PP to 5
2022-12-20 17:11:56 -06:00
darkfire006
b538376a1e Updated mechanics from SwSh
3 terrains are a +30%  instead of +50%
Defog removes terrains
Kings Shield is only a single atk red
2022-12-20 16:58:57 -06:00
darkfire006
e5b1242384 mark changes for P3D 2022-12-20 11:04:33 -06:00
darkfire006
ca5b22a143 remove erroneous attributes 2022-12-20 11:03:20 -06:00
darkfire006
44ccaa20f9 Mark wind moves 2022-12-20 11:02:14 -06:00
darkfire006
d5dbac8ec3 add sound attribute 2022-12-20 10:57:50 -06:00
darkfire006
92a3e62520 Mark slicing moves 2022-12-20 10:53:00 -06:00
darkfire006
1c9c0ef5ba add punching category 2022-12-20 10:46:20 -06:00
darkfire006
f92b2962dc 2 more impacted 2022-12-20 10:40:50 -06:00
darkfire006
3cad814d5d move clean up
moves reference attributes that they arent changing, removed 2 from all
2022-12-20 10:40:04 -06:00
darkfire006
e25d67384a mouth moves was only important for pmd 2022-12-20 10:31:56 -06:00
darkfire006
7a0b4a6a21 mark explosive moves 2022-12-20 10:30:50 -06:00
darkfire006
f9e5f32382 Mark dancing moves 2022-12-20 10:28:31 -06:00
darkfire006
6d3667be9f all are bullet moves 2022-12-20 10:23:48 -06:00
darkfire006
49ff0f8827 Sort categories and add a few 2022-12-20 10:23:12 -06:00
JappaWakka
01ada51a96 Fixed rooftop in celadon 2022-12-20 11:43:31 +01:00
JappaWakka
040f876c94 Lavender is now always night
Somehow it wasn't before?
2022-12-20 11:43:16 +01:00
darkfire006
86f5334aff Sacred sword should ignore all boosts not just acc 2022-12-20 01:24:13 -06:00
darkfire006
f103145780 Shore Up doesnt get worse in other weather only better in sand 2022-12-20 01:23:48 -06:00
darkfire006
9e0407d48d IceBurn listed as a freeze move 2022-12-20 01:23:22 -06:00
darkfire006
35a3861c9f Dizzy Punch was pound? 2022-12-20 01:23:08 -06:00
darkfire006
d230d55456 change from a hard coded boost to doubled 2022-12-20 01:22:49 -06:00
darkfire006
9d370f269b Let Magnet bomb hit always 2022-12-20 01:22:04 -06:00
darkfire006
627bb7eb2b missing description text for Aqua jet 2022-12-20 01:21:46 -06:00
darkfire006
423375f4a6 Fix Capitalization of 2 moves' back code 2022-12-20 01:21:14 -06:00
darkfire006
58fd846cc9 increased pin missile's accuracy 2022-12-19 18:00:50 -06:00
darkfire006
654c498025 Fix snatch is wrong type 2022-12-19 18:00:15 -06:00
JappaWakka
8463977303 Include the Gust assets 2022-12-19 20:02:33 +01:00
JappaWakka
5618b0c4db Added Gust move animation 2022-12-19 18:56:46 +01:00
JappaWakka
7468fb38b1 Really fix invisible offsetmapfloors 2022-12-19 06:28:02 +01:00
JappaWakka
9d9045218c This should prevent TurningSign crash 2022-12-19 06:11:48 +01:00
JappaWakka
cef17ea173 Fix invisible offsetmapfloors overwriting 2022-12-19 06:08:31 +01:00
darkfire006
96f9c056b1 Revert "Fix invisible floors overwriting visible floors"
This reverts commit 4511946f270c842d76f669134f753e817b7fb70f.
2022-12-18 22:57:10 -06:00
darkfire006
ac34e0cab2 add sea plane to R50 2022-12-18 17:52:54 -06:00
darkfire006
35422b758a standardize sign speeds 2022-12-18 17:07:57 -06:00
JappaWakka
6e106a28fa Set second type to typeless with Protean ability 2022-12-18 20:18:35 +01:00
JappaWakka
da107320cc Added spaces before - on signs 2022-12-18 20:12:27 +01:00
JappaWakka
e65ec432ec Slightly tweaked Egg sprites 2022-12-18 20:10:41 +01:00
JappaWakka
935dd6fcd0 Fix all caps signs in route30 2022-12-18 20:08:56 +01:00
JappaWakka
790e8ec382 Water animation in Waterfall can be vertical 2022-12-18 14:53:33 +01:00
JappaWakka
f3633cc0d8 Whirlpool animation textures can now be modified
Also removed a tag that wasn't used
2022-12-18 14:42:09 +01:00
JappaWakka
9d5411986f Update TurningSign entity rotation speed system 2022-12-15 19:13:10 +01:00
darkfire006
52f900291f unlock weather in the seviis 2022-12-15 09:04:19 -06:00
JappaWakka
ee3244d554 Added SeaPlane model + structure
and actually included the battle pike structure
2022-12-15 12:02:13 +01:00
JappaWakka
ebe7094f50 Added Battle Pike model + Structure 2022-12-15 10:56:38 +01:00
darkfire006
37bee3ef38 allow fly outside MST 2022-12-13 15:51:40 -06:00
darkfire006
b494c54dc1 add new BF building structures 2022-12-13 15:51:29 -06:00
darkfire006
b49606c616 include money multiplier events 2022-12-13 09:24:12 -06:00
darkfire006
6866fd496e change mention of bike shop 2022-12-13 09:23:52 -06:00
JappaWakka
3dba6774d4 Foggy, Blizzard & Thunderstorm weather fixes
* During weather that reduces fog distance, fog has the correct color now based on time of day and environmenttype
* During Blizzard & Thunderstorm, the clouds are now partially transparent to blend in better with the thick fog
2022-12-10 14:03:20 +01:00
JappaWakka
cc4b50f059 Check the right time 2022-12-08 17:19:54 +01:00
JappaWakka
05de30faed Fix renderdistance with different daytimes 2022-12-08 17:09:47 +01:00
darkfire006
7c2f360dbe R42 suicune crash fix 2022-12-08 09:46:41 -06:00
JappaWakka
55412e3286 Correct some comments 2022-12-06 19:03:37 +01:00
JappaWakka
7dcc423480 Added command to change the EnvironmentType
@Environment.SetEnvironmentType(ID)

This command temporarily sets the "EnvironmentType" parameter of the current map until a map change, which also changes the sky texture and sometimes adds particles. Value can be 0-5.
0 = Outside
1 = Inside
2 = Cave
3 = Dark (also makes all entities darker)
4 = Underwater (adds air bubble particles)
5= Forest
2022-12-06 19:03:23 +01:00
JappaWakka
b3b719e5c0 Improved flash overlay (cleaner + shows less) 2022-12-06 14:36:48 +01:00
JappaWakka
f3028d475d Fix Dark Cave Battlemap Walls 2022-12-06 14:34:55 +01:00
JappaWakka
75a71fbe7b Fix Hidden Ability Evolution Crash 2022-12-06 14:34:31 +01:00
JappaWakka
bdb0278280 Make unable to switch message localizable 2022-12-04 21:17:42 +01:00
JappaWakka
c0c4146607 Item Descriptions can be localized (no tokens yet) 2022-12-04 20:50:45 +01:00
JappaWakka
a86e478342 Spaces and hyphens for move names 2022-12-04 20:22:53 +01:00
JappaWakka
56f9670e0d Move/Attack names can be localized now 2022-12-04 20:11:29 +01:00
JappaWakka
dcf25a4817 Added Item names to localization file 2022-12-04 19:25:56 +01:00
darkfire006
4473b706a4 warp floor alignment fix 2022-12-02 09:29:30 -06:00
JappaWakka
4ed95f00c1 Finally made LightingType 6 function correctly 2022-11-26 14:41:30 +01:00
JappaWakka
6e2f925ba8 Added . after Repel use message 2022-11-18 15:08:34 +01:00
JappaWakka
4511946f27 Fix invisible floors overwriting visible floors 2022-11-18 15:08:14 +01:00
JappaWakka
8ea37604eb @Screen.ShowImage can now scale depending on size 2022-11-15 14:56:54 +01:00
JappaWakka
3bea96a5ea Fix Confused animation 2022-11-15 10:28:09 +01:00
JappaWakka
714869290c Fix medicine usage text out of bounds 2022-11-11 13:00:02 +01:00
JappaWakka
7d1931abd1 Fix exp sharing after switching before opponent 2022-11-11 12:59:38 +01:00
JappaWakka
da637a85af Added Ember_Start sound back in the animation 2022-11-11 11:17:26 +01:00
JappaWakka
61e35007ad Sweet Scent didn't have capital S before 2022-11-11 11:16:58 +01:00
JappaWakka
ac5fa28483 Added arg to force camera rotation (in 3rd person) 2022-11-02 11:49:46 +01:00
JappaWakka
9312aa18c3 Fix switch perspective with PreventMovement 2022-11-02 10:42:30 +01:00
JappaWakka
f5eff34304 Allow darker shading with different environments 2022-11-02 10:36:50 +01:00
JappaWakka
39d8e1b59f Also can't switch perspective with PreventMovement 2022-11-01 18:40:21 +01:00
JappaWakka
8f7c725b95 You can now scroll using the gamepad triggers 2022-11-01 17:37:38 +01:00
JappaWakka
b015a3632d Fix choosebox being too small in some cases 2022-10-18 17:02:24 +02:00
JappaWakka
b52e01e19a Fix tintower sage text outside of bounds 2022-10-18 16:58:17 +02:00
JappaWakka
afe35786a5 Fixed pokégear phone contacts overlapping text 2022-10-18 16:55:03 +02:00
JappaWakka
c6b3a97885 Fix trainers crashing when starting a battle 2022-10-18 16:54:38 +02:00
JappaWakka
37fd285ca4 Dynamic sizing of Poké sprites, needs test & fix 2022-10-18 16:05:36 +02:00
JappaWakka
3855f806bd Player is not transparent now when starting script 2022-10-18 16:04:26 +02:00
JappaWakka
b5282dd9f9 Made MagnetTrain jingle music instead of sfx + fix
Fixed timing on speedboatscene and magnettrain scripts
2022-10-18 16:03:52 +02:00
JappaWakka
57e145b668 Added argument to play a song that doesn't loop 2022-10-18 16:02:28 +02:00
JappaWakka
d74103073d Fixed alignment of egg data in summaryscreen 2022-10-17 12:20:04 +02:00
JappaWakka
33fa45afe6 Fixed dex entries for various Pokémon 2022-10-17 11:40:01 +02:00
JappaWakka
e9b4234add Fixed fogcolor based on lighting, not daytime 2022-10-16 20:31:07 +02:00
JappaWakka
69a9586f31 Corrected the transfer to pc message 2022-10-13 13:26:19 +02:00
JappaWakka
169ce4c709 Fixed collision detection bug 2022-10-13 13:26:01 +02:00
JappaWakka
7ca13b1a8d Fixed lightingtype 1 not disabling lighting 2022-10-08 20:36:59 +02:00
JappaWakka
683c21ba09 Made an exception to save disable rule 2022-10-06 21:24:18 +02:00
JappaWakka
470ccdff4f Another try at fixing waterfall bug 2022-10-02 12:50:34 +02:00
darkfire006
bbaeeaaa95 fix HP for Segis in-game 2022-10-01 23:09:44 -05:00
JappaWakka
269b7c3721 Fixed scriptblocks sometimes not executing 2022-10-01 12:44:42 +02:00
JappaWakka
dc38071637 Fixed egg sprites 2022-10-01 12:44:13 +02:00
JappaWakka
653fc249d1 Added PreventMovement property and commands
"@player.preventmovement" Makes the player unable to move, while still keeping control over the menu, interactions etc.
"@player.allowmovement" Gives the player back their ability to move.
2022-09-29 21:27:44 +02:00
JappaWakka
d4d53ba0ea Fix disabled save message not appearing 2022-09-29 21:25:38 +02:00
JappaWakka
b14277a91d Added gamerule to disable saving the game 2022-09-29 20:36:09 +02:00
JappaWakka
d2d4736039 Corrected egg hatch message 2022-09-29 20:34:18 +02:00
JappaWakka
d2860b15a8 Models work better in battle now 2022-09-27 12:51:51 +02:00
JappaWakka
6bb3f596ca Level changing to wrong daytime fix 2022-09-22 18:47:57 +02:00
JappaWakka
62d4dc3523 Updated TeachMovesScreen (descr.)
Scaled and positioned Pokémon sprites correctly
Replaced Minifont with MainFont
Positioned text correctly and made the text on buttons turn from black to white if highlighted
2022-09-22 12:48:03 +02:00
JappaWakka
d84bec2fbf Updated Evolution screen scale and positioning
Also fixed minor grammar thing: a "pokemonname". I just remove the a.
2022-09-22 12:25:02 +02:00
JappaWakka
90a9f56a25 Fixed HatchEggScreen Pokémon sprite scale 2022-09-22 12:20:38 +02:00
JappaWakka
ff35093697 Fixed daytime resetting to wrong daytime 2022-09-22 12:14:20 +02:00
JappaWakka
f40413e4b2 Fixed bug related to water animations 2022-09-22 12:13:46 +02:00
JappaWakka
da2242b24b Water animations rotation can now also be vertical
Instead of putting all water textures next to each other, you can also put sequences of 3 textures below each other if you add a 1 to the end of the definition of the water texture in additional value.
2022-09-20 21:34:04 +02:00
JappaWakka
c695a8c57d Fixed attack description outside box & sfx no stop 2022-09-20 14:33:09 +02:00
JappaWakka
8a61b2ba14 Fix for unknown symbol in attack descriptions 2022-09-20 13:32:16 +02:00
JappaWakka
b392894461 Include BerryData.dat 2022-09-19 17:49:13 +02:00
JappaWakka
43bfc04eff GameModes can now have different BerryData 2022-09-19 17:48:36 +02:00
JappaWakka
f8b74bf86d Fix for wrong camera direction switch to 1stperson 2022-09-19 15:49:14 +02:00
JappaWakka
4785492836 AnimationBlocks now support SeasonTextures 2022-09-18 21:01:34 +02:00
Jasper "JappaWakka" Speelman
dba1e721d6 No view bobbing anymore when sliding on ice 2022-09-16 17:56:30 +02:00
Jasper "JappaWakka" Speelman
a4b88fb463 Fix typo 2022-09-16 17:07:23 +02:00
JappaWakka
397ae27832 Actually fixing aurora sky 2022-09-16 11:07:43 +02:00
JappaWakka
3f3836cb6f Probably fixing aurora sky 2022-09-16 11:06:20 +02:00
JappaWakka
b9a7183166 Typo fixes and incorrect comments 2022-09-15 21:12:12 +02:00
JappaWakka
5209a6e768 Fixes to scale and positioning of Pokémon sprites 2022-09-15 21:11:13 +02:00
JappaWakka
315c1063df Fix for Pokémon sprites not being copied to build 2022-09-14 14:22:30 +02:00
JappaWakka
95a88b5bc8 Fixed Johto_Rival_Intro song name so it works 2022-09-13 21:02:28 +02:00
JappaWakka
fd93f96cbc Rewrote a huge part of musicplayer, works now! 2022-09-13 21:01:55 +02:00
JappaWakka
0392d7f0fe Fixed ContentPack battle music bug 2022-09-13 10:51:06 +02:00
JappaWakka
24832a346b FrontBack sprites now 96x96 each and numbered 2022-09-10 21:08:21 +02:00
JappaWakka
4c92f343d7 Hopefully this'll fix some issues (description)
Pokémon without a CatchMethod or CatchLocation get defaulted to "Somehow obtained at" and "an unknown place" respectively.
2022-09-10 16:17:55 +02:00
JappaWakka
8f1eb6795f Fixed typo in daily login reward script 2022-09-10 16:15:17 +02:00
JappaWakka
d8d993959f Fix for Howl move description 2022-09-10 15:56:27 +02:00
JappaWakka
d3c7c07a18 Removed contentpath from GameMode selection 2022-09-07 21:26:57 +02:00
JappaWakka
3cd4b43c4b Contentpacks with fonts work better now! 2022-09-07 17:13:33 +02:00
JappaWakka
964fceda68 Improve bag pocket icons in textfont 2022-09-07 16:35:20 +02:00
JappaWakka
e37268ffb5 Fix for knockoff item dupe bug 2022-09-04 19:23:12 +02:00
JappaWakka
9c611b9339 Fixed shader entity daytime behaviour 2022-09-01 22:21:33 +02:00
JappaWakka
f9c2b98c30 Fix shellos & gastrodon form sprite names 2022-09-01 22:20:16 +02:00
JappaWakka
9e86665e58 Added SaveOnly map tag
A map tag that disables the PokeGear and all of the menu options except Save while on the map
2022-08-29 13:01:56 +02:00
darkfire006
45d168a2ba remove water from digletts cave battle maps 2022-08-28 22:24:05 -05:00
darkfire006
0fe37c71b6 fixing a potential scripting issue in farfestch'd 2022-08-28 20:20:54 -05:00
darkfire006
3dbede9988 allow fly in mt moon square 2022-08-28 18:05:27 -05:00
darkfire006
6d43b3f4ee wrong description 2022-08-28 18:05:18 -05:00
darkfire006
3e9f61470e typos and such in frontier trainers 2022-08-28 18:05:02 -05:00
darkfire006
c55e2b55eb fix typo in npc remove register 2022-08-28 17:50:27 -05:00
darkfire006
1f325a006b fix when it see the johto dex as full 2022-08-28 17:50:15 -05:00
darkfire006
0fb77176d5 fix math for what is today 2022-08-28 17:50:01 -05:00
darkfire006
b6ad6adffa random typo 2022-08-28 17:49:41 -05:00
darkfire006
01ef42930e updated various text 2022-08-28 17:33:30 -05:00
darkfire006
aef944812a outdated references in big mart 2022-08-28 17:19:01 -05:00
darkfire006
abdd6d5ce5 noballs guy can get ball now 2022-08-28 17:12:15 -05:00
darkfire006
09d55d58e3 move the NPC referencing the blue counter to goldenrod to reference the move deleter 2022-08-28 17:06:49 -05:00
JappaWakka
3d41783c71 Failsafe for Pokémon player texture 2022-08-28 14:29:09 +02:00
darkfire006
936368b322 fix static encounter legendaries 2022-08-25 01:12:33 -05:00
darkfire006
5614e05e4e replace random use age of different NPC skin names 2022-08-25 01:10:16 -05:00
darkfire006
8bf24306f6 she speaks if there is an egg 2022-08-23 01:19:39 -05:00
darkfire006
dbe22c3e17 fixed when used by opp it shows own as user 2022-08-23 01:09:42 -05:00
darkfire006
9d85a79f65 leech seed drains even if other pokemon is full 2022-08-23 01:01:59 -05:00
darkfire006
1e2af514b2 fix text wrapping 2022-08-23 00:30:37 -05:00
darkfire006
21937ffcf9 fix trainer files not properly completing the math for pokemon ID 2022-08-23 00:09:36 -05:00
darkfire006
0e32b45b6c allow white space before trainer scripts for insight detection 2022-08-23 00:08:55 -05:00
darkfire006
d4ad4e2e45 fix CC description 2022-08-23 00:08:05 -05:00
darkfire006
cbf3e2c30f Version 0.59.1 wrap up 2022-08-22 17:39:02 -05:00
JappaWakka
9ebfb0c491 Current season can now be set in map tags 2022-08-21 19:29:26 +02:00
JappaWakka
336bbf4f12 Offsetmaps can now have singles for position 2022-08-21 19:27:26 +02:00
JappaWakka
cceea5684b Fix for ceruleandiglett 2022-08-21 10:46:23 +02:00
JappaWakka
531137c157 Fix softlock when pausing during catching
And a minor typo in the code
2022-08-18 14:55:52 +02:00
JappaWakka
00f78d5728 Fix camera position being wrong after magnettrain 2022-08-17 20:03:05 +02:00
JappaWakka
b14ce0a33f Fixed Lavender Town's sky 2022-08-17 18:30:55 +02:00
5081 changed files with 54711 additions and 21833 deletions
NuGet.config
P3D
Battle
Content/Data

@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<packageSources>
<add key="monogame-dev" value="http://teamcity.monogame.net/guestAuth/app/nuget/v1/FeedService.svc/" />
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>

@ -2,59 +2,108 @@
Inherits BattleAnimation3D
Public TransitionSpeed As Single = 0.01F
Public FadeIn As Boolean = False
Public FadeOut As Boolean = False
Public BackgroundOpacity As Single = 1.0F
Public EndState As Single = 0.0F
Public Texture As Texture2D
Dim FadeInSpeed As Single = 0.01F
Dim FadeOutSpeed As Single = 0.01F
Dim BackgroundOpacity As Single = 0.0F
Dim Texture As Texture2D
Dim DoTile As Boolean = False
Dim AnimationWidth As Integer = -1
Dim AfterFadeInOpacity As Single = 1.0F
Dim FadeProgress As FadeSteps = FadeSteps.FadeIn
Dim DurationDate As Date
Dim DurationWhole As Single
Dim DurationFraction As Single
Dim BackgroundAnimation As Animation
Dim CurrentRectangle As New Rectangle(0, 0, 0, 0)
Dim TextureScale As Integer = 4
Public Sub New(ByVal Texture As Texture2D, ByVal TransitionSpeed As Single, ByVal FadeIn As Boolean, FadeOut As Boolean, ByVal EndState As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal StartState As Single = 0.0F)
Public Enum FadeSteps As Integer
FadeIn
Duration
FadeOut
End Enum
Public Sub New(ByVal Texture As Texture2D, ByVal startDelay As Single, ByVal endDelay As Single, ByVal Duration As Single, Optional ByVal AfterFadeInOpacity As Single = 1.0F, Optional ByVal FadeInSpeed As Single = 0.125F, Optional ByVal FadeOutSpeed As Single = 0.125F, Optional ByVal DoTile As Boolean = False, Optional ByVal AnimationLength As Integer = 1, Optional ByVal AnimationSpeed As Integer = 2, Optional TextureScale As Integer = 4)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.Texture = Texture
Me.EndState = EndState
Me.FadeIn = FadeIn
Me.FadeOut = FadeOut
Me.TransitionSpeed = TransitionSpeed
Me.AfterFadeInOpacity = AfterFadeInOpacity
Me.FadeInSpeed = FadeInSpeed
Me.FadeOutSpeed = FadeOutSpeed
Me.DoTile = DoTile
Me.AnimationWidth = CInt(Texture.Width / AnimationLength)
DurationWhole = CSng(Math.Truncate(CDbl(Duration / 6.0F)))
DurationFraction = CSng((Duration / 6.0F - DurationWhole) * 1000)
Me.TextureScale = TextureScale
Me.BackgroundOpacity = StartState
If Me.AnimationWidth <> -1 OrElse Me.AnimationWidth <> Nothing Then
BackgroundAnimation = New Animation(Me.Texture, 1, AnimationLength, Me.AnimationWidth, Me.Texture.Height, AnimationSpeed * 24, 0, 0)
CurrentRectangle = BackgroundAnimation.TextureRectangle
Else
Me.AnimationWidth = Texture.Width
End If
Me.Visible = False
Me.AnimationType = AnimationTypes.Background
End Sub
Public Overrides Sub Render()
Dim BackgroundTarget As New RenderTarget2D(Core.GraphicsDevice, Core.windowSize.Width, Core.windowSize.Height, False, SurfaceFormat.Color, DepthFormat.Depth24Stencil8)
Core.GraphicsDevice.SetRenderTarget(BackgroundTarget)
GraphicsDevice.Clear(Microsoft.Xna.Framework.Color.Transparent)
If Date.Now >= startDelay AndAlso Me.BackgroundOpacity > 0.0F Then
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(0, 0, windowSize.Width, windowSize.Height), New Color(255, 255, 255, CInt(255 * Me.BackgroundOpacity)))
If DoTile = False Then
Core.SpriteBatch.Draw(Texture, New Rectangle(0, 0, windowSize.Width, windowSize.Height), CurrentRectangle, New Color(255, 255, 255, CInt(255 * Me.BackgroundOpacity)))
Else
For Dx = 0 To Core.windowSize.Width Step AnimationWidth
For Dy = 0 To Core.windowSize.Height Step Texture.Height
Core.SpriteBatch.Draw(Texture, New Rectangle(Dx * TextureScale, Dy * TextureScale, AnimationWidth * TextureScale, Texture.Height * TextureScale), CurrentRectangle, New Color(255, 255, 255, CInt(255 * Me.BackgroundOpacity)))
Next
Next
End If
End If
Core.GraphicsDevice.SetRenderTarget(Nothing)
Core.SpriteBatch.Draw(BackgroundTarget, windowSize, New Color(255, 255, 255, CInt(255 * Me.BackgroundOpacity)))
End Sub
Public Overrides Sub DoActionActive()
If Me.FadeIn = True Then
If Me.EndState > Me.BackgroundOpacity Then
Me.BackgroundOpacity += Me.TransitionSpeed
If Me.BackgroundOpacity >= Me.EndState Then
Me.BackgroundOpacity = Me.EndState
Me.FadeIn = False
Me.EndState = 0
End If
End If
Else
If Me.FadeOut = True Then
If Me.EndState < Me.BackgroundOpacity Then
Me.BackgroundOpacity -= Me.TransitionSpeed
If Me.BackgroundOpacity <= Me.EndState Then
Me.BackgroundOpacity = Me.EndState
End If
End If
If Me.BackgroundOpacity = Me.EndState Then
Me.Ready = True
End If
Else
Me.BackgroundOpacity = Me.EndState
Me.Ready = True
If BackgroundAnimation IsNot Nothing Then
BackgroundAnimation.Update(0.005)
If CurrentRectangle <> BackgroundAnimation.TextureRectangle Then
CurrentRectangle = BackgroundAnimation.TextureRectangle
End If
End If
Select Case Me.FadeProgress
Case FadeSteps.FadeIn
If Me.AfterFadeInOpacity > Me.BackgroundOpacity Then
Me.BackgroundOpacity += Me.FadeInSpeed
If Me.BackgroundOpacity >= Me.AfterFadeInOpacity Then
DurationDate = Date.Now + New TimeSpan(0, 0, 0, CInt(DurationWhole), CInt(DurationFraction))
FadeProgress = FadeSteps.Duration
Me.BackgroundOpacity = Me.AfterFadeInOpacity
End If
Else
FadeProgress = FadeSteps.Duration
Me.BackgroundOpacity = Me.AfterFadeInOpacity
End If
Case FadeSteps.Duration
If Date.Now >= DurationDate Then
FadeProgress = FadeSteps.FadeOut
End If
Case FadeSteps.FadeOut
If Me.BackgroundOpacity > 0.0F Then
Me.BackgroundOpacity -= Me.FadeOutSpeed
If Me.BackgroundOpacity <= 0.0F Then
Me.BackgroundOpacity = 0.0F
Me.Ready = True
End If
Else
Me.BackgroundOpacity = 0.0F
Me.Ready = True
End If
End Select
End Sub
End Class

@ -0,0 +1,34 @@
Imports P3D.Screen
Public Class BACameraChangeAngle
Inherits BattleAnimation3D
Dim CameraAngleID As Integer
Dim BV2Screen As BattleSystem.BattleScreen
Public Sub New(ByRef Battlescreen As BattleSystem.BattleScreen, ByVal CameraAngleID As Integer, ByVal startDelay As Single, ByVal endDelay As Single)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.BV2Screen = Battlescreen
Me.CameraAngleID = CameraAngleID
Me.Visible = False
Me.AnimationType = AnimationTypes.Camera
End Sub
Public Overrides Sub DoActionActive()
Select Case CameraAngleID
Case 0
Me.BV2Screen.Battle.ChangeCameraAngle(0, True, Me.BV2Screen)
Case 1
Me.BV2Screen.Battle.ChangeCameraAngle(1, True, Me.BV2Screen)
Case 2
Me.BV2Screen.Battle.ChangeCameraAngle(2, True, Me.BV2Screen)
End Select
Me.Ready = True
End Sub
End Class

@ -0,0 +1,313 @@
Public Class BACameraOscillateMove
Inherits BattleAnimation3D
Dim StartPosition As Vector3
Dim ReturnToStart As Vector3
Dim HalfDistance As New Vector3(0.0F)
Dim DestinationDistance As New Vector3(0.0F)
Dim CurrentDistance As New Vector3(0.0F)
Dim MoveSpeed As Single
Dim MoveBothWays As Boolean = True
Dim MovementCurve As Integer = 0
Dim Duration As TimeSpan
Dim ReadyTime As Date
Dim ReadyAxis As New Vector3(0)
Dim InterpolationSpeed As Vector3
Dim InterpolationDirection As Boolean = True
Public Enum Curves As Integer
Linear
Smooth
End Enum
Public Sub New(ByVal Distance As Vector3, ByVal Speed As Single, ByVal BothWays As Boolean, ByVal Duration As TimeSpan, ByVal startDelay As Single, ByVal endDelay As Single, Optional MovementCurve As Integer = 0, Optional ReturnToStart As Vector3 = Nothing)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.HalfDistance = Distance
Me.DestinationDistance = Me.HalfDistance
Me.MoveSpeed = Speed
Me.MoveBothWays = BothWays
Me.Duration = Duration
Me.MovementCurve = CType(MovementCurve, Curves)
Me.Visible = False
Select Case MovementCurve
Case Curves.Linear
InterpolationSpeed = New Vector3(MoveSpeed)
Case Curves.Smooth
InterpolationSpeed = New Vector3(0.0F)
End Select
If ReturnToStart <> Nothing Then
Me.ReturnToStart = ReturnToStart
End If
Me.AnimationType = AnimationTypes.Move
End Sub
Public Overrides Sub DoActionActive()
Move()
End Sub
Private Sub Move()
If StartPosition = Nothing Then
StartPosition = Screen.Camera.Position
End If
If ReadyTime = Nothing Then
ReadyTime = Date.Now + Duration
End If
If MovementCurve = Curves.Smooth Then
If InterpolationDirection = True Then
If InterpolationSpeed.X < MoveSpeed Then
InterpolationSpeed.X += MoveSpeed / 10
Else
InterpolationSpeed.X = MoveSpeed
End If
If InterpolationSpeed.Y < MoveSpeed Then
InterpolationSpeed.Y += MoveSpeed / 10
Else
InterpolationSpeed.Y = MoveSpeed
End If
If InterpolationSpeed.Z < MoveSpeed Then
InterpolationSpeed.Z += MoveSpeed / 10
Else
InterpolationSpeed.Z = MoveSpeed
End If
Else
If Date.Now < ReadyTime Then
If InterpolationSpeed.X > 0 Then
InterpolationSpeed.X -= MoveSpeed / 10
Else
InterpolationSpeed.X = 0
End If
If InterpolationSpeed.Y > 0 Then
InterpolationSpeed.Y -= MoveSpeed / 10
Else
InterpolationSpeed.Y = 0
End If
If InterpolationSpeed.Z > 0 Then
InterpolationSpeed.Z -= MoveSpeed / 10
Else
InterpolationSpeed.Z = 0
End If
Else
If InterpolationSpeed.X > MoveSpeed / 10 * 3 Then
InterpolationSpeed.X -= MoveSpeed / 10
Else
InterpolationSpeed.X = MoveSpeed / 10 * 3
End If
If InterpolationSpeed.Y > MoveSpeed / 10 * 3 Then
InterpolationSpeed.Y -= MoveSpeed / 10
Else
InterpolationSpeed.Y = MoveSpeed / 10 * 3
End If
If InterpolationSpeed.Z > MoveSpeed / 10 * 3 Then
InterpolationSpeed.Z -= MoveSpeed / 10
Else
InterpolationSpeed.Z = MoveSpeed / 10 * 3
End If
End If
End If
End If
If CurrentDistance.X <> DestinationDistance.X Then
If CurrentDistance.X < DestinationDistance.X Then
CurrentDistance.X += InterpolationSpeed.X
Else
CurrentDistance.X -= InterpolationSpeed.X
End If
If Math.Abs(CurrentDistance.X) / Math.Abs(HalfDistance.X) > 0.75F Then
InterpolationDirection = False
End If
If DestinationDistance.X > 0.0F Then
If CurrentDistance.X >= DestinationDistance.X Then
CurrentDistance.X = DestinationDistance.X
End If
ElseIf DestinationDistance.X < 0.0F Then
If CurrentDistance.X <= DestinationDistance.X Then
CurrentDistance.X = DestinationDistance.X
End If
Else
If CurrentDistance.X > DestinationDistance.X Then
If CurrentDistance.X - InterpolationSpeed.X <= DestinationDistance.X Then
CurrentDistance.X = DestinationDistance.X
End If
Else
If CurrentDistance.X + InterpolationSpeed.X >= DestinationDistance.X Then
CurrentDistance.X = DestinationDistance.X
End If
End If
End If
Else
If Date.Now < ReadyTime Then
If MoveBothWays = True Then
If DestinationDistance.X > 0.0F Then
DestinationDistance.X = 0.0F - Math.Abs(HalfDistance.X) * 2
Else
DestinationDistance.X = 0.0F + Math.Abs(HalfDistance.X) * 2
End If
Else
If DestinationDistance.X > 0.0F Then
DestinationDistance.X = 0.0F
Else
DestinationDistance.X = HalfDistance.X
End If
End If
InterpolationDirection = True
Else
If ReturnToStart.X = 0.0F Then
ReadyAxis.X = 1.0F
Else
If DestinationDistance.X <> 0.0F Then
DestinationDistance.X = 0.0F
InterpolationDirection = True
End If
If CurrentDistance.X = 0.0F Then
ReadyAxis.X = 1.0F
End If
End If
End If
End If
If CurrentDistance.Y <> DestinationDistance.Y Then
If CurrentDistance.Y < DestinationDistance.Y Then
CurrentDistance.Y += InterpolationSpeed.Y
Else
CurrentDistance.Y -= InterpolationSpeed.Y
End If
If Math.Abs(CurrentDistance.Y) / Math.Abs(HalfDistance.Y) > 0.75F Then
InterpolationDirection = False
End If
If DestinationDistance.Y > 0.0F Then
If CurrentDistance.Y >= DestinationDistance.Y Then
CurrentDistance.Y = DestinationDistance.Y
End If
ElseIf DestinationDistance.Y < 0.0F Then
If CurrentDistance.Y <= DestinationDistance.Y Then
CurrentDistance.Y = DestinationDistance.Y
End If
Else
If CurrentDistance.Y > DestinationDistance.Y Then
If CurrentDistance.Y - InterpolationSpeed.Y <= DestinationDistance.Y Then
CurrentDistance.Y = DestinationDistance.Y
End If
Else
If CurrentDistance.Y + InterpolationSpeed.Y >= DestinationDistance.Y Then
CurrentDistance.Y = DestinationDistance.Y
End If
End If
End If
Else
If Date.Now < ReadyTime Then
If MoveBothWays = True Then
If DestinationDistance.Y > 0.0F Then
DestinationDistance.Y = 0.0F - Math.Abs(HalfDistance.Y) * 2
Else
DestinationDistance.Y = 0.0F + Math.Abs(HalfDistance.Y) * 2
End If
Else
If DestinationDistance.Y > 0.0F Then
DestinationDistance.Y = 0.0F
Else
DestinationDistance.Y = HalfDistance.Y
End If
End If
InterpolationDirection = True
Else
If ReturnToStart.Y = 0.0F Then
ReadyAxis.Y = 1.0F
Else
If DestinationDistance.Y <> 0.0F Then
DestinationDistance.Y = 0.0F
InterpolationDirection = True
End If
If CurrentDistance.Y = 0.0F Then
ReadyAxis.Y = 1.0F
End If
End If
End If
End If
If CurrentDistance.Z <> DestinationDistance.Z Then
If CurrentDistance.Z < DestinationDistance.Z Then
CurrentDistance.Z += InterpolationSpeed.Z
Else
CurrentDistance.Z -= InterpolationSpeed.Z
End If
If Math.Abs(CurrentDistance.Y) / Math.Abs(HalfDistance.Y) > 0.75F Then
InterpolationDirection = False
End If
If DestinationDistance.Z > 0.0F Then
If CurrentDistance.Z >= DestinationDistance.Z Then
CurrentDistance.Z = DestinationDistance.Z
End If
ElseIf DestinationDistance.Z < 0.0F Then
If CurrentDistance.Z <= DestinationDistance.Z Then
CurrentDistance.Z = DestinationDistance.Z
End If
Else
If CurrentDistance.Z > DestinationDistance.Z Then
If CurrentDistance.Z - InterpolationSpeed.Z <= DestinationDistance.Z Then
CurrentDistance.Z = DestinationDistance.Z
End If
Else
If CurrentDistance.Z + InterpolationSpeed.Z >= DestinationDistance.Z Then
CurrentDistance.Z = DestinationDistance.Z
End If
End If
End If
Else
If Date.Now < ReadyTime Then
If MoveBothWays = True Then
If DestinationDistance.Z > 0.0F Then
DestinationDistance.Z = 0.0F - Math.Abs(HalfDistance.Z) * 2
Else
DestinationDistance.Z = 0.0F + Math.Abs(HalfDistance.Z) * 2
End If
Else
If DestinationDistance.Z > 0.0F Then
DestinationDistance.Z = 0.0F
Else
DestinationDistance.Z = HalfDistance.Z
End If
End If
InterpolationDirection = True
Else
If ReturnToStart.Z = 0.0F Then
ReadyAxis.Z = 1.0F
Else
If DestinationDistance.Z <> 0.0F Then
DestinationDistance.Z = 0.0F
InterpolationDirection = True
End If
If CurrentDistance.Z = 0.0F Then
ReadyAxis.Z = 1.0F
End If
End If
End If
End If
If HalfDistance.X <> 0.0F Then
Screen.Camera.Position.X = StartPosition.X + Me.CurrentDistance.X
Else
ReadyAxis.X = 1.0F
End If
If HalfDistance.Y <> 0.0F Then
Screen.Camera.Position.Y = StartPosition.Y + Me.CurrentDistance.Y
Else
ReadyAxis.Y = 1.0F
End If
If HalfDistance.Z <> 0.0F Then
Screen.Camera.Position.Z = StartPosition.Z + Me.CurrentDistance.Z
Else
ReadyAxis.Z = 1.0F
End If
If Date.Now > ReadyTime AndAlso ReadyAxis.X = 1.0F AndAlso ReadyAxis.Y = 1.0F AndAlso ReadyAxis.Z = 1.0F Then
Me.Ready = True
End If
End Sub
End Class

@ -2,21 +2,34 @@
Inherits BattleAnimation3D
Public TargetEntity As Entity
Public TransitionSpeed As Single = 0.01F
Public FadeIn As Boolean = False
Public ColorTo As Vector3 = New Vector3(1.0F, 1.0F, 1.0F)
Dim TargetEntity As Entity
Dim TransitionSpeed As Single = 0.01F
Dim TransitionSpeedOut As Single = 0.01F
Dim ReturnToFromWhenDone As Boolean = False
Dim RemoveEntityAfter As Boolean = False
Dim InitialColorSet As Boolean = False
Dim IsReturning As Boolean = False
Dim ColorTo As Vector3 = New Vector3(1.0F, 1.0F, 1.0F)
Dim ColorFrom As Vector3 = New Vector3(1.0F, 1.0F, 1.0F)
Public Sub New(ByVal Entity As Entity, ByVal TransitionSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single, ByVal ColorTo As Color, Optional ByVal ColorFrom As Color = Nothing)
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal TransitionSpeedIn As Single, ByVal ReturnToFromWhenDone As Boolean, ByVal startDelay As Single, ByVal endDelay As Single, ByVal ColorTo As Vector3, Optional ByVal ColorFrom As Vector3 = Nothing, Optional TransitionSpeedOut As Single = -1)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.TransitionSpeed = TransitionSpeed
Me.RemoveEntityAfter = RemoveEntityAfter
If TransitionSpeedOut = -1 Then
Me.TransitionSpeedOut = TransitionSpeedIn
Else
Me.TransitionSpeedOut = TransitionSpeedOut
End If
Me.TransitionSpeed = TransitionSpeedIn
Me.TargetEntity = Entity
Me.ReturnToFromWhenDone = ReturnToFromWhenDone
If Not ColorFrom = Nothing Then
TargetEntity.Color = ColorFrom.ToVector3
Me.ColorFrom = ColorFrom
Else
Me.ColorFrom = TargetEntity.Color
End If
Me.ColorTo = ColorTo.ToVector3
Me.ColorTo = ColorTo
Me.Visible = False
@ -24,44 +37,62 @@
End Sub
Public Overrides Sub DoActionActive()
If InitialColorSet = False Then
TargetEntity.Color = ColorFrom
InitialColorSet = True
End If
If TargetEntity.Color.X > ColorTo.X Then
TargetEntity.Color.X -= CByte(Me.TransitionSpeed)
TargetEntity.Color.X -= Me.TransitionSpeed
If TargetEntity.Color.X <= ColorTo.X Then
TargetEntity.Color.X = ColorTo.X
End If
ElseIf TargetEntity.Color.X < ColorTo.X Then
TargetEntity.Color.X += CByte(Me.TransitionSpeed)
TargetEntity.Color.X += Me.TransitionSpeed
If TargetEntity.Color.X >= ColorTo.X Then
TargetEntity.Color.X = ColorTo.X
End If
End If
If TargetEntity.Color.Y > ColorTo.Y Then
TargetEntity.Color.Y -= CByte(Me.TransitionSpeed)
TargetEntity.Color.Y -= Me.TransitionSpeed
If TargetEntity.Color.Y <= ColorTo.Y Then
TargetEntity.Color.Y = ColorTo.Y
End If
ElseIf TargetEntity.Color.Y < ColorTo.Y Then
TargetEntity.Color.Y += CByte(Me.TransitionSpeed)
TargetEntity.Color.Y += Me.TransitionSpeed
If TargetEntity.Color.Y >= ColorTo.Y Then
TargetEntity.Color.Y = ColorTo.Y
End If
End If
If TargetEntity.Color.Z > ColorTo.Z Then
TargetEntity.Color.Z -= CByte(Me.TransitionSpeed)
TargetEntity.Color.Z -= Me.TransitionSpeed
If TargetEntity.Color.Z <= ColorTo.Z Then
TargetEntity.Color.Z = ColorTo.Z
End If
ElseIf TargetEntity.Color.Z < ColorTo.Z Then
TargetEntity.Color.Z += CByte(Me.TransitionSpeed)
TargetEntity.Color.Z += Me.TransitionSpeed
If TargetEntity.Color.Z >= ColorTo.Z Then
TargetEntity.Color.Z = ColorTo.Z
End If
End If
If TargetEntity.Color = ColorTo Then
Me.Ready = True
If ReturnToFromWhenDone = False Then
Me.Ready = True
Else
If IsReturning = False Then
ColorTo = ColorFrom
TransitionSpeed = TransitionSpeedOut
IsReturning = True
Else
Me.Ready = True
End If
End If
End If
End Sub
Public Overrides Sub DoRemoveEntity()
If Me.RemoveEntityAfter = True Then
TargetEntity.CanBeRemoved = True
End If
End Sub
End Class

@ -3,25 +3,25 @@
Inherits BattleAnimation3D
Dim TargetEntity As NPC
Dim TargetModel As Entity = Nothing
Dim EndFaceRotation As Integer
Dim TurnSteps As Integer = 0
Dim TurnSpeed As Integer = 1
Dim TurnTime As Single = 0.0F
Dim TurnDelay As Single = 0.0F
Public Sub New(ByVal TargetEntity As NPC, ByVal TurnSteps As Integer, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal EndFaceRotation As Integer = -1, Optional ByVal TurnSpeed As Integer = 1, Optional ByVal TurnDelay As Single = 0.25F, Optional TargetModel As Entity = Nothing)
Public Sub New(ByRef TargetEntity As NPC, ByVal TurnSteps As Integer, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal EndFaceRotation As Integer = -1, Optional ByVal TurnSpeed As Integer = 1, Optional ByVal TurnDelay As Single = 0.25F)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
If EndFaceRotation = -1 Then
Me.EndFaceRotation = TargetEntity.faceRotation
Else
Me.EndFaceRotation = EndFaceRotation
End If
Me.TargetModel = TargetModel
Me.TurnSteps = TurnSteps
Me.TargetEntity = TargetEntity
Me.TurnSpeed = TurnSpeed
Me.TurnDelay = TurnDelay
Me.AnimationType = AnimationTypes.Rotation
End Sub
Public Overrides Sub DoActionActive()
@ -34,9 +34,6 @@
If Me.TargetEntity.faceRotation < 0 Then
Me.TargetEntity.faceRotation += 4
End If
If Me.TargetModel IsNot Nothing Then
Me.TargetModel.Rotation = Entity.GetRotationFromInteger(Me.TargetEntity.faceRotation)
End If
Me.TurnSteps -= TurnSpeed.ToPositive()
Me.TurnTime = TurnDelay
Else
@ -45,9 +42,6 @@
Else
If Me.TargetEntity.faceRotation <> Me.EndFaceRotation Then
Me.TargetEntity.faceRotation = Me.EndFaceRotation
If Me.TargetModel IsNot Nothing Then
Me.TargetModel.Rotation = Entity.GetRotationFromInteger(Me.EndFaceRotation)
End If
End If
Me.Ready = True
End If

@ -2,19 +2,23 @@
Inherits BattleAnimation3D
Public TargetEntity As Entity
Public Destination As Vector3
Public MoveSpeed As Single
Public MoveYSpeed As Single
Public InterpolationSpeed As Single
Public SpinX As Boolean = False
Public SpinZ As Boolean = False
Public SpinSpeedX As Single = 0.1F
Public SpinSpeedZ As Single = 0.1F
Public MovementCurve As Integer = 3
Private EasedIn As Boolean = False
Private EasedOut As Boolean = False
Dim StartPosition As Vector3
Dim TargetEntity As Entity
Dim Destination As Vector3
Dim MoveDistance As New Vector3(0.0F)
Dim MoveSpeed As Single
Dim MoveYSpeed As Single
Dim InterpolationSpeed As Single
Dim InterpolationYSpeed As Single
Dim SpinX As Boolean = False
Dim SpinZ As Boolean = False
Dim SpinSpeedX As Single = 0.1F
Dim SpinSpeedZ As Single = 0.1F
Dim MovementCurve As Integer = 3
Dim EasedIn As Boolean = False
Dim EasedOut As Boolean = False
Public RemoveEntityAfter As Boolean
Dim ReadyAxis As Vector3 = New Vector3(0.0F)
Public Enum Curves As Integer
EaseIn
EaseOut
@ -24,7 +28,6 @@
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal Destination As Vector3, ByVal Speed As Single, ByVal SpinX As Boolean, ByVal SpinZ As Boolean, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal SpinXSpeed As Single = 0.1F, Optional ByVal SpinZSpeed As Single = 0.1F, Optional MovementCurve As Integer = 3, Optional MoveYSpeed As Single = 0.0F)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.RemoveEntityAfter = RemoveEntityAfter
Me.Destination = Destination
Me.MoveSpeed = Speed
@ -43,15 +46,29 @@
Me.Visible = False
Me.TargetEntity = Entity
Me.StartPosition = TargetEntity.Position
Me.MoveDistance.X = Math.Abs(Me.StartPosition.X - Me.Destination.X)
If TargetEntity.Model IsNot Nothing Then
Me.MoveDistance.Y = Math.Abs(Me.StartPosition.Y - Me.Destination.Y - 0.5F)
Else
Me.MoveDistance.Y = Math.Abs(Me.StartPosition.Y - Me.Destination.Y)
End If
Me.MoveDistance.Z = Math.Abs(Me.StartPosition.Z - Me.Destination.Z)
Select Case MovementCurve
Case Curves.EaseIn
InterpolationSpeed = 0.0F
InterpolationYSpeed = 0.0F
Case Curves.EaseOut
InterpolationSpeed = MoveSpeed
InterpolationYSpeed = MoveYSpeed
Case Curves.EaseInAndOut
InterpolationSpeed = 0.0F
InterpolationYSpeed = 0.0F
Case Curves.Linear
InterpolationSpeed = MoveSpeed
InterpolationYSpeed = MoveYSpeed
End Select
Me.AnimationType = AnimationTypes.Move
@ -75,121 +92,142 @@
End Sub
Private Sub Move()
Select Case MovementCurve
Case Curves.EaseIn
If EasedIn = False Then
If InterpolationSpeed < MoveSpeed Then
InterpolationSpeed += MoveSpeed / 10
If InterpolationSpeed < MoveSpeed - 0.05F OrElse InterpolationYSpeed < MoveYSpeed - 0.05F Then
If InterpolationSpeed < MoveSpeed - 0.05F Then
InterpolationSpeed = MathHelper.Lerp(InterpolationSpeed, MoveSpeed, 0.9F)
End If
If InterpolationYSpeed < MoveYSpeed - 0.05F Then
InterpolationYSpeed = MathHelper.Lerp(InterpolationYSpeed, MoveYSpeed, 0.9F)
End If
Else
EasedIn = True
InterpolationSpeed = MoveSpeed
InterpolationYSpeed = MoveYSpeed
EasedIn = True
End If
End If
Case Curves.EaseOut
If EasedOut = False Then
If InterpolationSpeed > 0 Then
InterpolationSpeed -= MoveSpeed / 10
If InterpolationSpeed > 0.05F OrElse InterpolationYSpeed > 0.05F Then
If InterpolationSpeed > 0.05F Then
InterpolationSpeed = MathHelper.Lerp(InterpolationSpeed, 0.0F, 0.9F)
End If
If InterpolationYSpeed > 0.05F Then
InterpolationYSpeed = MathHelper.Lerp(InterpolationYSpeed, 0.0F, 0.9F)
End If
Else
EasedOut = True
InterpolationYSpeed = 0
InterpolationSpeed = 0
EasedOut = True
End If
End If
Case Curves.EaseInAndOut
If EasedIn = False Then
If InterpolationSpeed < MoveSpeed Then
InterpolationSpeed += MoveSpeed / 10
If InterpolationSpeed < MoveSpeed - 0.05F OrElse InterpolationYSpeed < MoveYSpeed - 0.05F Then
If InterpolationSpeed < MoveSpeed - 0.05F Then
InterpolationSpeed = MathHelper.Lerp(InterpolationSpeed, MoveSpeed, 0.9F)
End If
If InterpolationYSpeed < MoveYSpeed - 0.05F Then
InterpolationYSpeed = MathHelper.Lerp(InterpolationYSpeed, MoveYSpeed, 0.9F)
End If
Else
EasedIn = True
InterpolationSpeed = MoveSpeed
InterpolationYSpeed = MoveYSpeed
EasedIn = True
End If
Else
If EasedOut = False Then
If InterpolationSpeed > 0 Then
InterpolationSpeed -= MoveSpeed / 10
If MoveDistance.X <= 0.05F AndAlso MoveDistance.Y <= 0.05F AndAlso MoveDistance.Z <= 0.05F Then
If InterpolationSpeed > 0.05F OrElse InterpolationYSpeed > 0.05F Then
If InterpolationSpeed > 0.05F Then
InterpolationSpeed = MathHelper.Lerp(InterpolationSpeed, 0.0F, 0.9F)
End If
If InterpolationYSpeed > 0.05F Then
InterpolationYSpeed = MathHelper.Lerp(InterpolationYSpeed, 0.0F, 0.9F)
End If
Else
InterpolationYSpeed = 0
InterpolationSpeed = 0
EasedOut = True
End If
Else
EasedOut = True
InterpolationSpeed = 0
If InterpolationSpeed > 0.05F + MoveSpeed / 10 * 3 OrElse InterpolationYSpeed > 0.05F + MoveYSpeed / 10 * 3 Then
If InterpolationSpeed > 0.05F + MoveSpeed / 10 * 3 Then
InterpolationSpeed = MathHelper.Lerp(InterpolationSpeed, 0.0F, 0.9F)
End If
If InterpolationYSpeed > 0.05F + MoveYSpeed / 10 * 3 Then
InterpolationYSpeed = MathHelper.Lerp(InterpolationYSpeed, 0.0F, 0.9F)
End If
Else
InterpolationYSpeed = MoveSpeed / 10 * 3
InterpolationSpeed = MoveSpeed / 10 * 3
End If
End If
End If
End If
End Select
If MovementCurve = Curves.Linear Then
If TargetEntity.Position.X < Me.Destination.X Then
TargetEntity.Position.X += Me.MoveSpeed
If MoveDistance.X > 0.05F Then
If StartPosition.X < Me.Destination.X Then
TargetEntity.Position.X += Me.InterpolationSpeed
If TargetEntity.Position.X >= Me.Destination.X - 0.05 Then
If TargetEntity.Position.X >= Me.Destination.X + 0.05 Then
TargetEntity.Position.X = Me.Destination.X
End If
ElseIf TargetEntity.Position.X > Me.Destination.X Then
TargetEntity.Position.X -= Me.MoveSpeed
ElseIf StartPosition.X > Me.Destination.X Then
TargetEntity.Position.X -= Me.InterpolationSpeed
If TargetEntity.Position.X <= Me.Destination.X + 0.05 Then
TargetEntity.Position.X = Me.Destination.X
End If
End If
If TargetEntity.Position.Y < Me.Destination.Y Then
MoveDistance.X -= Me.InterpolationSpeed
Else
ReadyAxis.X = 1.0F
End If
If MoveDistance.Y > 0.05F Then
If StartPosition.Y < Me.Destination.Y Then
TargetEntity.Position.Y += Me.MoveYSpeed
If TargetEntity.Position.Y >= Me.Destination.Y - 0.05 Then
TargetEntity.Position.Y = Me.Destination.Y
End If
ElseIf TargetEntity.Position.Y > Me.Destination.Y Then
ElseIf StartPosition.Y > Me.Destination.Y Then
TargetEntity.Position.Y -= Me.MoveYSpeed
If TargetEntity.Position.Y <= Me.Destination.Y + 0.05 Then
TargetEntity.Position.Y = Me.Destination.Y
End If
End If
If TargetEntity.Position.Z < Me.Destination.Z Then
TargetEntity.Position.Z += Me.MoveSpeed
MoveDistance.Y -= Me.MoveYSpeed
Else
ReadyAxis.Y = 1.0F
End If
If MoveDistance.Z > 0.05F Then
If StartPosition.Z < Me.Destination.Z Then
TargetEntity.Position.Z += Me.InterpolationSpeed
If TargetEntity.Position.Z >= Me.Destination.Z - 0.05 Then
TargetEntity.Position.Z = Me.Destination.Z
End If
ElseIf TargetEntity.Position.Z > Me.Destination.Z Then
TargetEntity.Position.Z -= Me.MoveSpeed
ElseIf StartPosition.Z > Me.Destination.Z Then
TargetEntity.Position.Z -= Me.InterpolationSpeed
If TargetEntity.Position.Z <= Me.Destination.Z + 0.05 Then
TargetEntity.Position.Z = Me.Destination.Z
End If
End If
MoveDistance.Z -= Me.MoveYSpeed
Else
If TargetEntity.Position.X < Me.Destination.X Then
TargetEntity.Position.X = MathHelper.Lerp(TargetEntity.Position.X, Me.Destination.X, Me.InterpolationSpeed)
If TargetEntity.Position.X > Me.Destination.X - 0.05 Then
TargetEntity.Position.X = Me.Destination.X
End If
ElseIf TargetEntity.Position.X > Me.Destination.X Then
TargetEntity.Position.X = MathHelper.Lerp(TargetEntity.Position.X, Me.Destination.X, Me.InterpolationSpeed)
If TargetEntity.Position.X < Me.Destination.X + 0.05 Then
TargetEntity.Position.X = Me.Destination.X
End If
End If
If TargetEntity.Position.Y < Me.Destination.Y Then
TargetEntity.Position.Y = MathHelper.Lerp(TargetEntity.Position.Y, Me.Destination.Y, Me.InterpolationSpeed)
If TargetEntity.Position.Y > Me.Destination.Y - 0.05 Then
TargetEntity.Position.Y = Me.Destination.Y
End If
ElseIf TargetEntity.Position.Y > Me.Destination.Y Then
TargetEntity.Position.Y = MathHelper.Lerp(TargetEntity.Position.Y, Me.Destination.Y, Me.InterpolationSpeed)
If TargetEntity.Position.Y < Me.Destination.Y + 0.05 Then
TargetEntity.Position.Y = Me.Destination.Y
End If
End If
If TargetEntity.Position.Z < Me.Destination.Z Then
TargetEntity.Position.Z = MathHelper.Lerp(TargetEntity.Position.Z, Me.Destination.Z, Me.InterpolationSpeed)
If TargetEntity.Position.Z > Me.Destination.Z - 0.05 Then
TargetEntity.Position.Z = Me.Destination.Z
End If
ElseIf TargetEntity.Position.Z > Me.Destination.Z Then
TargetEntity.Position.Z = MathHelper.Lerp(TargetEntity.Position.Z, Me.Destination.Z, Me.InterpolationSpeed)
If TargetEntity.Position.Z < Me.Destination.Z + 0.05 Then
TargetEntity.Position.Z = Me.Destination.Z
End If
End If
ReadyAxis.Z = 1.0F
End If
If TargetEntity.Position = Destination Then
If ReadyAxis.X = 1.0F AndAlso ReadyAxis.Y = 1.0F AndAlso ReadyAxis.Z = 1.0F Then
Me.Ready = True
End If
End Sub

@ -2,20 +2,19 @@
Inherits BattleAnimation3D
Public TargetEntity As Entity
Public TransitionSpeed As Single = 0.01F
Public FadeIn As Boolean = False
Public EndState As Single = 0.0F
Public RemoveEntityAfter As Boolean
Dim TargetEntity As Entity
Dim TransitionSpeed As Single = 0.01F
Dim FadeIn As Boolean = False
Dim EndState As Single = 0.0F
Dim RemoveEntityAfter As Boolean
Public Sub New(ByVal entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal TransitionSpeed As Single, ByVal FadeIn As Boolean, ByVal EndState As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal StartState As Single = 1.0F)
Public Sub New(ByRef entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal TransitionSpeed As Single, ByVal FadeIn As Boolean, ByVal EndState As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal StartState As Single = 1.0F)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.RemoveEntityAfter = RemoveEntityAfter
Me.EndState = EndState
Me.FadeIn = FadeIn
Me.TransitionSpeed = TransitionSpeed
Me.TargetEntity = entity
Me.TargetEntity.NormalOpacity = StartState
Me.Visible = False

@ -0,0 +1,323 @@
Public Class BAEntityOscillateMove
Inherits BattleAnimation3D
Dim StartPosition As Vector3
Dim ReturnToStart As Vector3
Dim TargetEntity As Entity
Dim HalfDistance As New Vector3(0.0F)
Dim DestinationDistance As New Vector3(0.0F)
Dim CurrentDistance As New Vector3(0.0F)
Dim MoveSpeed As Single
Dim MoveBothWays As Boolean = True
Dim MovementCurve As Integer = 0
Dim RemoveEntityAfter As Boolean
Dim Duration As TimeSpan
Dim ReadyTime As Date
Dim ReadyAxis As New Vector3(0)
Dim InterpolationSpeed As Vector3
Dim InterpolationDirection As Boolean = True
Public Enum Curves As Integer
Linear
Smooth
End Enum
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal Distance As Vector3, ByVal Speed As Single, ByVal BothWays As Boolean, ByVal Duration As TimeSpan, ByVal startDelay As Single, ByVal endDelay As Single, Optional MovementCurve As Integer = 0, Optional ReturnToStart As Vector3 = Nothing)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.RemoveEntityAfter = RemoveEntityAfter
Me.HalfDistance = Distance
Me.DestinationDistance = Me.HalfDistance
Me.MoveSpeed = Speed
Me.MoveBothWays = BothWays
Me.Duration = Duration
Me.MovementCurve = CType(MovementCurve, Curves)
Me.Visible = False
Me.TargetEntity = Entity
Select Case MovementCurve
Case Curves.Linear
InterpolationSpeed = New Vector3(MoveSpeed)
Case Curves.Smooth
InterpolationSpeed = New Vector3(0.0F)
End Select
If ReturnToStart <> Nothing Then
Me.ReturnToStart = ReturnToStart
End If
Me.AnimationType = AnimationTypes.Move
End Sub
Public Overrides Sub DoActionActive()
Move()
End Sub
Private Sub Move()
If StartPosition = Nothing Then
StartPosition = TargetEntity.Position
End If
If ReadyTime = Nothing Then
ReadyTime = Date.Now + Duration
End If
If MovementCurve = Curves.Smooth Then
If InterpolationDirection = True Then
If InterpolationSpeed.X < MoveSpeed Then
InterpolationSpeed.X += MoveSpeed / 10
Else
InterpolationSpeed.X = MoveSpeed
End If
If InterpolationSpeed.Y < MoveSpeed Then
InterpolationSpeed.Y += MoveSpeed / 10
Else
InterpolationSpeed.Y = MoveSpeed
End If
If InterpolationSpeed.Z < MoveSpeed Then
InterpolationSpeed.Z += MoveSpeed / 10
Else
InterpolationSpeed.Z = MoveSpeed
End If
Else
If Date.Now < ReadyTime Then
If InterpolationSpeed.X > 0 Then
InterpolationSpeed.X -= MoveSpeed / 10
Else
InterpolationSpeed.X = 0
End If
If InterpolationSpeed.Y > 0 Then
InterpolationSpeed.Y -= MoveSpeed / 10
Else
InterpolationSpeed.Y = 0
End If
If InterpolationSpeed.Z > 0 Then
InterpolationSpeed.Z -= MoveSpeed / 10
Else
InterpolationSpeed.Z = 0
End If
Else
If InterpolationSpeed.X > MoveSpeed / 10 * 3 Then
InterpolationSpeed.X -= MoveSpeed / 10
Else
InterpolationSpeed.X = MoveSpeed / 10 * 3
End If
If InterpolationSpeed.Y > MoveSpeed / 10 * 3 Then
InterpolationSpeed.Y -= MoveSpeed / 10
Else
InterpolationSpeed.Y = MoveSpeed / 10 * 3
End If
If InterpolationSpeed.Z > MoveSpeed / 10 * 3 Then
InterpolationSpeed.Z -= MoveSpeed / 10
Else
InterpolationSpeed.Z = MoveSpeed / 10 * 3
End If
End If
End If
End If
If CurrentDistance.X <> DestinationDistance.X Then
If CurrentDistance.X < DestinationDistance.X Then
CurrentDistance.X += InterpolationSpeed.X
Else
CurrentDistance.X -= InterpolationSpeed.X
End If
If Math.Abs(CurrentDistance.X) / Math.Abs(HalfDistance.X) > 0.75F Then
InterpolationDirection = False
End If
If DestinationDistance.X > 0.0F Then
If CurrentDistance.X >= DestinationDistance.X Then
CurrentDistance.X = DestinationDistance.X
End If
ElseIf DestinationDistance.x < 0.0F Then
If CurrentDistance.X <= DestinationDistance.X Then
CurrentDistance.X = DestinationDistance.X
End If
Else
If CurrentDistance.X > DestinationDistance.X Then
If CurrentDistance.X - InterpolationSpeed.X <= DestinationDistance.X Then
CurrentDistance.X = DestinationDistance.X
End If
Else
If CurrentDistance.X + InterpolationSpeed.X >= DestinationDistance.X Then
CurrentDistance.X = DestinationDistance.X
End If
End If
End If
Else
If Date.Now < ReadyTime Then
If MoveBothWays = True Then
If DestinationDistance.X > 0.0F Then
DestinationDistance.X = 0.0F - Math.Abs(HalfDistance.X) * 2
Else
DestinationDistance.X = 0.0F + Math.Abs(HalfDistance.X) * 2
End If
Else
If DestinationDistance.X > 0.0F Then
DestinationDistance.X = 0.0F
Else
DestinationDistance.X = HalfDistance.X
End If
End If
InterpolationDirection = True
Else
If ReturnToStart.X = 0.0F Then
ReadyAxis.X = 1.0F
Else
If DestinationDistance.X <> 0.0F Then
DestinationDistance.X = 0.0F
InterpolationDirection = True
End If
If CurrentDistance.X = 0.0F Then
ReadyAxis.X = 1.0F
End If
End If
End If
End If
If CurrentDistance.Y <> DestinationDistance.Y Then
If CurrentDistance.Y < DestinationDistance.Y Then
CurrentDistance.Y += InterpolationSpeed.Y
Else
CurrentDistance.Y -= InterpolationSpeed.Y
End If
If Math.Abs(CurrentDistance.Y) / Math.Abs(HalfDistance.Y) > 0.75F Then
InterpolationDirection = False
End If
If DestinationDistance.Y > 0.0F Then
If CurrentDistance.Y >= DestinationDistance.Y Then
CurrentDistance.Y = DestinationDistance.Y
End If
ElseIf DestinationDistance.Y < 0.0F Then
If CurrentDistance.Y <= DestinationDistance.Y Then
CurrentDistance.Y = DestinationDistance.Y
End If
Else
If CurrentDistance.Y > DestinationDistance.Y Then
If CurrentDistance.Y - InterpolationSpeed.Y <= DestinationDistance.Y Then
CurrentDistance.Y = DestinationDistance.Y
End If
Else
If CurrentDistance.Y + InterpolationSpeed.Y >= DestinationDistance.Y Then
CurrentDistance.Y = DestinationDistance.Y
End If
End If
End If
Else
If Date.Now < ReadyTime Then
If MoveBothWays = True Then
If DestinationDistance.Y > 0.0F Then
DestinationDistance.Y = 0.0F - Math.Abs(HalfDistance.Y) * 2
Else
DestinationDistance.Y = 0.0F + Math.Abs(HalfDistance.Y) * 2
End If
Else
If DestinationDistance.Y > 0.0F Then
DestinationDistance.Y = 0.0F
Else
DestinationDistance.Y = HalfDistance.Y
End If
End If
InterpolationDirection = True
Else
If ReturnToStart.Y = 0.0F Then
ReadyAxis.Y = 1.0F
Else
If DestinationDistance.Y <> 0.0F Then
DestinationDistance.Y = 0.0F
InterpolationDirection = True
End If
If CurrentDistance.Y = 0.0F Then
ReadyAxis.Y = 1.0F
End If
End If
End If
End If
If CurrentDistance.Z <> DestinationDistance.Z Then
If CurrentDistance.Z < DestinationDistance.Z Then
CurrentDistance.Z += InterpolationSpeed.Z
Else
CurrentDistance.Z -= InterpolationSpeed.Z
End If
If Math.Abs(CurrentDistance.Y) / Math.Abs(HalfDistance.Y) > 0.75F Then
InterpolationDirection = False
End If
If DestinationDistance.Z > 0.0F Then
If CurrentDistance.Z >= DestinationDistance.Z Then
CurrentDistance.Z = DestinationDistance.Z
End If
ElseIf DestinationDistance.z < 0.0F Then
If CurrentDistance.Z <= DestinationDistance.Z Then
CurrentDistance.Z = DestinationDistance.Z
End If
Else
If CurrentDistance.Z > DestinationDistance.Z Then
If CurrentDistance.Z - InterpolationSpeed.Z <= DestinationDistance.Z Then
CurrentDistance.Z = DestinationDistance.Z
End If
Else
If CurrentDistance.Z + InterpolationSpeed.Z >= DestinationDistance.Z Then
CurrentDistance.Z = DestinationDistance.Z
End If
End If
End If
Else
If Date.Now < ReadyTime Then
If MoveBothWays = True Then
If DestinationDistance.Z > 0.0F Then
DestinationDistance.Z = 0.0F - Math.Abs(HalfDistance.Z) * 2
Else
DestinationDistance.Z = 0.0F + Math.Abs(HalfDistance.Z) * 2
End If
Else
If DestinationDistance.Z > 0.0F Then
DestinationDistance.Z = 0.0F
Else
DestinationDistance.Z = HalfDistance.Z
End If
End If
InterpolationDirection = True
Else
If ReturnToStart.Z = 0.0F Then
ReadyAxis.Z = 1.0F
Else
If DestinationDistance.Z <> 0.0F Then
DestinationDistance.Z = 0.0F
InterpolationDirection = True
End If
If CurrentDistance.Z = 0.0F Then
ReadyAxis.Z = 1.0F
End If
End If
End If
End If
If HalfDistance.X <> 0.0F Then
TargetEntity.Position.X = StartPosition.X + Me.CurrentDistance.X
Else
ReadyAxis.X = 1.0F
End If
If HalfDistance.Y <> 0.0F Then
TargetEntity.Position.Y = StartPosition.Y + Me.CurrentDistance.Y
Else
ReadyAxis.Y = 1.0F
End If
If HalfDistance.Z <> 0.0F Then
TargetEntity.Position.Z = StartPosition.Z + Me.CurrentDistance.Z
Else
ReadyAxis.Z = 1.0F
End If
If Date.Now > ReadyTime AndAlso ReadyAxis.X = 1.0F AndAlso ReadyAxis.Y = 1.0F AndAlso ReadyAxis.Z = 1.0F Then
Me.Ready = True
End If
End Sub
Public Overrides Sub DoRemoveEntity()
If Me.RemoveEntityAfter = True Then
TargetEntity.CanBeRemoved = True
End If
End Sub
End Class

@ -9,41 +9,47 @@
Dim ReturnVector As Vector3
Dim hasReturned As Boolean = False
Dim DoRotation As Vector3 = New Vector3(1.0F)
Public RemoveEntityAfter As Boolean = False
Dim AmountRotated As Vector3 = New Vector3(0.0F)
Dim ReadyAxis As Vector3 = New Vector3(0.0F)
Dim RemoveEntityAfter As Boolean = False
Public Sub New(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal RotationSpeedVector As Vector3, ByVal EndRotation As Vector3, ByVal startDelay As Single, ByVal endDelay As Single)
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal RotationSpeedVector As Vector3, ByVal EndRotation As Vector3, ByVal startDelay As Single, ByVal endDelay As Single)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.RemoveEntityAfter = RemoveEntityAfter
Me.RotationSpeedVector = RotationSpeedVector
Me.EndRotation = EndRotation
Me.TargetEntity = Entity
Me.ReturnVector = TargetEntity.Rotation
Me.AnimationType = AnimationTypes.Rotation
End Sub
Public Sub New(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal RotationSpeedVector As Vector3, ByVal EndRotation As Vector3, ByVal startDelay As Single, ByVal endDelay As Single, ByVal DoXRotation As Boolean, ByVal DoYRotation As Boolean, ByVal DoZRotation As Boolean)
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal RotationSpeedVector As Vector3, ByVal EndRotation As Vector3, ByVal startDelay As Single, ByVal endDelay As Single, ByVal DoXRotation As Boolean, ByVal DoYRotation As Boolean, ByVal DoZRotation As Boolean)
Me.New(Entity, RemoveEntityAfter, RotationSpeedVector, EndRotation, startDelay, endDelay)
If DoXRotation = False Then
DoRotation.X = 0.0F
ReadyAxis.X = 1.0F
End If
If DoYRotation = False Then
DoRotation.Y = 0.0F
ReadyAxis.Y = 1.0F
End If
If DoZRotation = False Then
DoRotation.Z = 0.0F
ReadyAxis.Z = 1.0F
End If
End Sub
Public Sub New(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal RotationSpeedVector As Vector3, ByVal EndRotation As Vector3, ByVal startDelay As Single, ByVal endDelay As Single, ByVal DoXRotation As Boolean, ByVal DoYRotation As Boolean, ByVal DoZRotation As Boolean, ByVal DoReturn As Boolean)
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal RotationSpeedVector As Vector3, ByVal EndRotation As Vector3, ByVal startDelay As Single, ByVal endDelay As Single, ByVal DoXRotation As Boolean, ByVal DoYRotation As Boolean, ByVal DoZRotation As Boolean, ByVal DoReturn As Boolean)
Me.New(Entity, RemoveEntityAfter, RotationSpeedVector, EndRotation, startDelay, endDelay, DoXRotation, DoYRotation, DoZRotation)
Me.DoReturn = DoReturn
End Sub
Public Overrides Sub DoActionActive()
If VectorReached() = False Then
If DoRotation.X = 1.0F Then
If DoRotation.X = 1.0F Then
If AmountRotated.X < Math.Abs(EndRotation.X) Then
If TargetEntity.Rotation.X > Me.EndRotation.X Then
TargetEntity.Rotation.X += Me.RotationSpeedVector.X
@ -57,9 +63,13 @@
TargetEntity.Rotation.X = Me.EndRotation.X
End If
End If
AmountRotated.X += Math.Abs(Me.RotationSpeedVector.X)
Else
ReadyAxis.X = 1.0F
End If
If DoRotation.Y = 1.0F Then
End If
If DoRotation.Y = 1.0F Then
If AmountRotated.Y < Math.Abs(EndRotation.Y) Then
If TargetEntity.Rotation.Y > Me.EndRotation.Y Then
TargetEntity.Rotation.Y += Me.RotationSpeedVector.Y
@ -73,9 +83,15 @@
TargetEntity.Rotation.Y = Me.EndRotation.Y
End If
End If
AmountRotated.Y += Math.Abs(Me.RotationSpeedVector.Y)
Else
ReadyAxis.y = 1.0F
End If
End If
If DoRotation.Z = 1.0F Then
If AmountRotated.Z < Math.Abs(EndRotation.Z) Then
If DoRotation.Z = 1.0F Then
If TargetEntity.Rotation.Z > Me.EndRotation.Z Then
TargetEntity.Rotation.Z += Me.RotationSpeedVector.Z
@ -89,42 +105,40 @@
TargetEntity.Rotation.Z = Me.EndRotation.Z
End If
End If
AmountRotated.Z += Math.Abs(Me.RotationSpeedVector.Z)
Else
ReadyAxis.Z = 1.0F
End If
Else
End If
If ReadyAxis.X = 1.0F AndAlso ReadyAxis.Y = 1.0F AndAlso ReadyAxis.Z = 1.0F Then
RotationReady()
End If
End Sub
Private Sub RotationReady()
If Me.DoReturn = True And Me.hasReturned = False Then
Me.hasReturned = True
Me.EndRotation = Me.ReturnVector
Me.RotationSpeedVector = New Vector3(Me.RotationSpeedVector.X * -1, Me.RotationSpeedVector.Y * -1, Me.RotationSpeedVector.Z * -1)
If DoRotation.X = 1.0F Then
ReadyAxis.X = 0.0F
AmountRotated.X -= AmountRotated.X * 2
End If
If DoRotation.Y = 1.0F Then
ReadyAxis.Y = 0.0F
AmountRotated.Y -= AmountRotated.Y * 2
End If
If DoRotation.Z = 1.0F Then
ReadyAxis.Z = 0.0F
AmountRotated.Z -= AmountRotated.Z * 2
End If
Else
Me.Ready = True
End If
End Sub
Private Function VectorReached() As Boolean
If DoRotation.X = 1.0F Then
If EndRotation.X <> TargetEntity.Rotation.X Then
Return False
End If
End If
If DoRotation.Y = 1.0F Then
If EndRotation.Y <> TargetEntity.Rotation.Y Then
Return False
End If
End If
If DoRotation.Z = 1.0F Then
If EndRotation.Z <> TargetEntity.Rotation.Z Then
Return False
End If
End If
Return True
End Function
Public Overrides Sub DoRemoveEntity()
If Me.RemoveEntityAfter = True Then
TargetEntity.CanBeRemoved = True

@ -2,16 +2,16 @@
Inherits BattleAnimation3D
Public Grow As Boolean = False
Public EndSize As Vector3
Public SizeSpeed As Single = 0.01F
Public TargetEntity As Entity
Public Anchors As String '1 = Bottom, 2 = Top, 3 = Left, 4 = Right. Combinations are possible.
Dim Grow As Boolean = False
Dim EndSize As Vector3
Dim SizeSpeed As Single = 0.01F
Dim TargetEntity As Entity
Dim Anchors As String '1 = Bottom, 2 = Top, 3 = Left, 4 = Right. Combinations are possible.
Public Change As New Vector3(1)
Public RemoveEntityAfter As Boolean
Dim SpeedMultiplier As Vector3
Dim RemoveEntityAfter As Boolean
Public Sub New(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal Scale As Vector3, ByVal Grow As Boolean, ByVal EndSize As Vector3, ByVal SizeSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single, ByVal Anchors As String)
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal Scale As Vector3, ByVal Grow As Boolean, ByVal EndSize As Vector3, ByVal SizeSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single, ByVal Anchors As String, Optional SpeedMultiplier As Vector3 = Nothing)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, Scale, startDelay, endDelay)
Me.RemoveEntityAfter = RemoveEntityAfter
Me.Anchors = Anchors
@ -19,6 +19,11 @@
Me.EndSize = EndSize
Me.SizeSpeed = SizeSpeed
Me.TargetEntity = Entity
If SpeedMultiplier <> Nothing Then
Me.SpeedMultiplier = SpeedMultiplier
Else
Me.SpeedMultiplier = New Vector3(1)
End If
Me.AnimationType = AnimationTypes.Size
End Sub
@ -26,9 +31,9 @@
Public Overrides Sub DoActionActive()
Dim saveScale As Vector3 = TargetEntity.Scale
Dim changeX As Single = SizeSpeed * Change.X
Dim changeY As Single = SizeSpeed * Change.Y
Dim changeZ As Single = SizeSpeed * Change.Z
Dim changeX As Single = SizeSpeed * SpeedMultiplier.X
Dim changeY As Single = SizeSpeed * SpeedMultiplier.Y
Dim changeZ As Single = SizeSpeed * SpeedMultiplier.Z
If Grow = True Then
If TargetEntity.Scale.X < Me.EndSize.X Then
@ -102,9 +107,6 @@
End If
End Sub
Public Sub SetChange(ByVal changeX As Single, ByVal changeY As Single, ByVal changeZ As Single)
Me.Change = New Vector3(changeX, changeY, changeZ)
End Sub
Public Overrides Sub DoRemoveEntity()
If Me.RemoveEntityAfter = True Then
TargetEntity.CanBeRemoved = True

@ -0,0 +1,36 @@
Public Class BAEntitySetPosition
Inherits BattleAnimation3D
Dim TargetEntity As Entity
Dim SetPosition As Vector3
Dim RemoveEntityAfter As Boolean
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal SetPosition As Vector3, ByVal startDelay As Single, ByVal endDelay As Single)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.RemoveEntityAfter = RemoveEntityAfter
Me.SetPosition = SetPosition
Me.Visible = False
Me.TargetEntity = Entity
Me.AnimationType = AnimationTypes.Move
End Sub
Public Overrides Sub DoActionActive()
Dim SetPositionOffset As Vector3 = New Vector3(0)
If TargetEntity.Model IsNot Nothing Then
SetPositionOffset = New Vector3(0, -0.5, 0)
End If
TargetEntity.Position = Me.SetPosition + SetPositionOffset
Me.Ready = True
End Sub
Public Overrides Sub DoRemoveEntity()
If Me.RemoveEntityAfter = True Then
TargetEntity.CanBeRemoved = True
End If
End Sub
End Class

@ -2,15 +2,16 @@
Inherits BattleAnimation3D
Public Texture As Texture2D
Public TargetEntity As Entity
Public RemoveEntityAfter As Boolean
Dim Texture As Texture2D
Dim TargetEntity As Entity
Dim RemoveEntityAfter As Boolean
Public Sub New(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, Texture As Texture2D, ByVal startDelay As Single, ByVal endDelay As Single)
Public Sub New(ByRef Entity As Entity, ByVal RemoveEntityAfter As Boolean, Texture As Texture2D, ByVal startDelay As Single, ByVal endDelay As Single)
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.RemoveEntityAfter = RemoveEntityAfter
Me.TargetEntity = Entity
Me.Texture = Texture
Me.AnimationType = AnimationTypes.Texture
End Sub

@ -2,24 +2,27 @@
Inherits BattleAnimation3D
Private soundfile As String
Private stopMusic As Boolean
Private IsPokemon As Boolean
Dim soundfile As String
Dim stopMusic As Boolean
Dim IsPokemon As Boolean
Dim CrySuffix As String = ""
Public Sub New(ByVal sound As String, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal stopMusic As Boolean = False, Optional ByVal IsPokemon As Boolean = False)
Public Sub New(ByVal sound As String, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal stopMusic As Boolean = False, Optional ByVal IsPokemon As Boolean = False, Optional ByVal CrySuffix As String = "")
MyBase.New(New Vector3(0.0F), TextureManager.DefaultTexture, New Vector3(1.0F), startDelay, endDelay)
Me.Scale = New Vector3(1.0F)
soundfile = sound
Me.Visible = False
Me.stopMusic = stopMusic
Me.IsPokemon = IsPokemon
Me.CrySuffix = CrySuffix
AnimationType = AnimationTypes.Sound
End Sub
Public Overrides Sub DoActionActive()
If IsPokemon = True Then
SoundManager.PlayPokemonCry(CInt(soundfile))
SoundManager.PlayPokemonCry(CInt(soundfile), Me.CrySuffix)
Else
SoundManager.PlaySound(soundfile, stopMusic)
End If

@ -14,10 +14,9 @@
Size
Rotation
Texture
Wait
ViewPokeBill
Sound
Background
Camera
End Enum
Public AnimationType As AnimationTypes = AnimationTypes.Nothing
@ -25,13 +24,14 @@
Public Ready As Boolean = False
Public startDelay As Date
Public endDelay As Date
Public SpawnedEntity As Boolean = False
Public Started As Boolean = False
Private DelayDivide As Single = 6.0F
Private StartDelayWhole As Single
Private StartDelayFraction As Single
Private EndDelayWhole As Single
Private EndDelayFraction As Single
Dim SpawnedEntity As Boolean = False
Dim Started As Boolean = False
Dim DelayDivide As Single = 6.0F
Dim StartDelayWhole As Single
Dim StartDelayFraction As Single
Dim EndDelayWhole As Single
Dim EndDelayFraction As Single
Dim hasStartedEndDelay As Boolean = False
Public Sub New(ByVal Position As Vector3, ByVal Texture As Texture2D, ByVal Scale As Vector3, ByVal startDelay As Single, ByVal endDelay As Single, Optional SpawnedEntity As Boolean = False)
MyBase.New(Position.X, Position.Y, Position.Z, "BattleAnimation", {Texture}, {0, 0}, False, 0, Scale, BaseModel.BillModel, 0, "", New Vector3(1.0F))
@ -48,16 +48,21 @@
End Sub
Public Overrides Sub Update()
If Started = False Then
Me.startDelay = Date.Now + New TimeSpan(0, 0, 0, CInt(StartDelayWhole), CInt(StartDelayFraction * 1000))
Me.endDelay = Date.Now + New TimeSpan(0, 0, 0, CInt(EndDelayWhole), CInt(EndDelayFraction * 1000))
hasStartedEndDelay = False
Started = True
End If
If CanRemove = False Then
If Ready = True Then
If hasStartedEndDelay = False Then
Me.endDelay = Date.Now + New TimeSpan(0, 0, 0, CInt(EndDelayWhole), CInt(EndDelayFraction * 1000))
hasStartedEndDelay = True
End If
If Date.Now >= endDelay Then
CanRemove = True
DoRemoveEntity()
CanRemove = True
End If
Else
If Date.Now >= startDelay Then

@ -20,7 +20,7 @@
Return Nothing
End Select
Return TextureManager.GetTexture("GUI\Menus\Types", r, "")
Return TextureManager.GetTexture(Element.GetElementTexturePath(), r, "")
End Function
Public Shared Function GetStatColor(ByVal Status As Pokemon.StatusProblems) As Color

File diff suppressed because it is too large Load Diff

@ -12,7 +12,7 @@
End If
Dim ability As String = p.Ability.Name.ToLower()
If p.Item IsNot Nothing AndAlso BattleScreen.FieldEffects.CanUseItem(own) = True Then
Select Case p.Item.Name.ToLower()
Select Case p.Item.OriginalName.ToLower()
Case "damp rock"
If ability = "drizzle" Or moveName = "rain dance" Then
turns = 8
@ -242,7 +242,7 @@
End If
Dim SlowDownItems As List(Of String) = {"iron ball", "macho brace", "power bracer", "power belt", "power lens", "power band", "power anklet", "power weight"}.ToList()
If SlowDownItems.Contains(p.Item.Name.ToLower()) = True And BattleScreen.FieldEffects.CanUseItem(own) = True Then
If SlowDownItems.Contains(p.Item.OriginalName.ToLower()) = True And BattleScreen.FieldEffects.CanUseItem(own) = True Then
speed = CInt(speed / 2)
End If
@ -505,13 +505,13 @@
result = INIT * ACCM
If Not op.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Not own) = True Then
If op.Item.Name.ToLower() = "bright powder" Or op.Item.Name.ToLower() = "lax incense" Then
If op.Item.OriginalName.ToLower() = "bright powder" Or op.Item.OriginalName.ToLower() = "lax incense" Then
result *= 0.9F
End If
End If
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(own) = True Then
Select Case p.Item.Name.ToLower()
Select Case p.Item.OriginalName.ToLower()
Case "wide lens"
result *= 1.1F
Case "zoom lens"
@ -633,7 +633,7 @@
End If
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(own) = True Then
Select Case p.Item.Name.ToLower()
Select Case p.Item.OriginalName.ToLower()
Case "lucky punch"
If p.Number = 113 Then
C += 2
@ -676,7 +676,7 @@
Return False
End Function
Public Shared Function CanRun(ByVal own As Boolean, ByVal BattleScreen As BattleScreen) As Boolean
Public Shared Function CanRun(ByVal own As Boolean, ByVal BattleScreen As BattleScreen, Optional ByVal IsEscapeMove As Boolean = False) As Boolean
If BattleScreen.BattleMode = BattleScreen.BattleModes.Safari Then
Return True
End If
@ -697,7 +697,7 @@
End If
If Not p.Item Is Nothing Then
If p.Item.Name.ToLower() = "smoke ball" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then
If p.Item.OriginalName.ToLower() = "smoke ball" And BattleScreen.FieldEffects.CanUseItem(own) = True And BattleScreen.FieldEffects.CanUseOwnItem(own, BattleScreen) = True Then
Return True
End If
End If
@ -736,6 +736,10 @@
Return False
End If
If IsEscapeMove = True Then
Return True
End If
If p.Speed > op.Speed Then
Return True
Else
@ -876,7 +880,7 @@
End If
If Not op.Item Is Nothing Then
If op.Item.Name.ToLower() = "ring target" And BattleScreen.FieldEffects.CanUseItem(Not own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Not own, BattleScreen) = True Then
If op.Item.OriginalName.ToLower() = "ring target" And BattleScreen.FieldEffects.CanUseItem(Not own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Not own, BattleScreen) = True Then
If Type1 = 0 Then
effectiveness = Type2
End If
@ -987,7 +991,7 @@
Return CalculateEffectiveness(move, BattleScreen, p, op, own)
End Function
Public Shared Function GainExp(ByVal p As Pokemon, ByVal BattleScreen As BattleScreen, ByVal PokemonList As List(Of Integer)) As Integer
Public Shared Function GainExp(ByVal p As Pokemon, ByVal BattleScreen As BattleScreen, ByVal PokemonList As List(Of Integer), ByVal PokeIndex As Integer) As Integer
Dim op As Pokemon = BattleScreen.OppPokemon
Dim a As Double = 1D
@ -998,13 +1002,30 @@
Dim b As Double = op.BaseExperience
Dim t As Double = 1D
If p.OT <> Core.Player.OT Then
t = 1.5D
If Not p.Item Is Nothing AndAlso p.Item.IsGameModeItem = True Then
If CType(p.Item, GameModeItem).gmExpMultiplier <> -1D AndAlso CType(p.Item, GameModeItem).gmOverrideTradeExp = True Then
t = CType(p.Item, GameModeItem).gmExpMultiplier
Else
If p.OT <> Core.Player.OT Then
t = 1.5D
End If
End If
Else
If p.OT <> Core.Player.OT Then
t = 1.5D
End If
End If
Dim gm As Double = 1D
If Not p.Item Is Nothing AndAlso p.Item.IsGameModeItem = True Then
If CType(p.Item, GameModeItem).gmExpMultiplier <> -1D AndAlso CType(p.Item, GameModeItem).gmOverrideTradeExp = False Then
gm = CType(p.Item, GameModeItem).gmExpMultiplier
End If
End If
Dim e As Double = 1D
If Not p.Item Is Nothing Then
If p.Item.Name.ToLower() = "lucky egg" Then
If p.Item.OriginalName.ToLower() = "lucky egg" Then
e = 1.5D
End If
End If
@ -1015,25 +1036,33 @@
Dim s As Double = PokemonList.Count
Dim expShares As Integer = 0
For Each po As Pokemon In Core.Player.Pokemons
If Not po.Item Is Nothing Then
If po.Item.Name.ToLower() = "exp share" Then
expShares += 1
End If
Dim expAllMultiplier As Single = 1
If Core.Player.Inventory.GetItemAmount(658.ToString) > 0 And Core.Player.EnableExpAll = True Then
s = 1D
If BattleScreen.ParticipatedPokemon.Contains(PokeIndex) = False Then
expAllMultiplier = 0.5F
End If
Next
Else
For Each po As Pokemon In Core.Player.Pokemons
If Not po.Item Is Nothing Then
If po.Item.OriginalName.ToLower() = "exp. share" Then
expShares += 1
End If
End If
Next
If expShares > 0 Then
If Not p.Item Is Nothing Then
If p.Item.Name.ToLower() = "exp share" Then
s = 2D
Else
s = (PokemonList.Count * 2D) * expShares
If expShares > 0 Then
If Not p.Item Is Nothing Then
If p.Item.OriginalName.ToLower() = "exp. share" Then
s = 2D
Else
s = (PokemonList.Count * 2D) * expShares
End If
End If
End If
End If
Dim EXP As Integer = CInt((((a * b * L) / (5 * s)) * (((2 * L + 10) ^ 2.5D) / ((L + Lp + 10) ^ 2.5D)) + 1) * t * e * 1)
Dim EXP As Integer = CInt((((a * b * L) / (5 * s)) * (((2 * L + 10) ^ 2.5D) / ((L + Lp + 10) ^ 2.5D)) + 1) * t * e * gm * expAllMultiplier)
If EXP < 2 Then
EXP = 2
@ -1045,6 +1074,10 @@
End If
Next
If Core.Player.Inventory.GetItemAmount(656.ToString) > 0 Then 'Exp. Charm
EXP = CInt(EXP * 1.5F)
End If
Return EXP
End Function
@ -1106,7 +1139,7 @@
With BattleScreen
If Not .OwnPokemon.Item Is Nothing Then
If .OwnPokemon.Item.Name.ToLower() = "shed shell" And .FieldEffects.CanUseItem(True) = True And .FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
If .OwnPokemon.Item.OriginalName.ToLower() = "shed shell" And .FieldEffects.CanUseItem(True) = True And .FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
Return True
End If
End If
@ -1154,7 +1187,7 @@
With BattleScreen
If Not .OppPokemon.Item Is Nothing Then
If .OppPokemon.Item.Name.ToLower() = "shed shell" And .FieldEffects.CanUseItem(False) = True And .FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
If .OppPokemon.Item.OriginalName.ToLower() = "shed shell" And .FieldEffects.CanUseItem(False) = True And .FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
Return True
End If
End If
@ -1222,7 +1255,7 @@
'IT (Item attack power modifier)
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then
Select Case p.Item.Name.ToLower()
Select Case p.Item.OriginalName.ToLower()
Case "muscle band"
If Attack.Category = Attack.Categories.Physical Then
IT = 1.1F
@ -1686,7 +1719,7 @@
End Select
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then
Select Case p.Item.Name.ToLower()
Select Case p.Item.OriginalName.ToLower()
Case "choice band"
IM = 1.5F
Case "light ball"
@ -1731,7 +1764,7 @@
End Select
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then
Select Case p.Item.Name.ToLower()
Select Case p.Item.OriginalName.ToLower()
Case "choice specs"
IM = 1.5F
Case "light ball"
@ -1814,7 +1847,7 @@
End If
If Not Op.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Not Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Not Own, BattleScreen) = True Then
Select Case Op.Item.Name.ToLower()
Select Case Op.Item.OriginalName.ToLower()
Case "metal powder"
If Op.Number = 132 Then
DMod = 1.5F
@ -1857,7 +1890,7 @@
End If
If Not Op.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Not Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Not Own, BattleScreen) = True Then
Select Case Op.Item.Name.ToLower()
Select Case Op.Item.OriginalName.ToLower()
Case "metal powder"
If Op.Number = 132 Then
DMod = 1.5F
@ -1963,15 +1996,15 @@
End If
Case Element.Types.Electric
If BattleScreen.FieldEffects.ElectricTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(Own, BattleScreen) = True Then
SR = 1.5F
SR = 1.3F
End If
Case Element.Types.Grass
If BattleScreen.FieldEffects.GrassyTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(Own, BattleScreen) = True Then
SR = 1.5F
SR = 1.3F
End If
Case Element.Types.Psychic
If BattleScreen.FieldEffects.PsychicTerrain > 0 And BattleScreen.FieldEffects.IsGrounded(Own, BattleScreen) = True Then
SR = 1.5F
SR = 1.3F
End If
End Select
@ -2022,7 +2055,7 @@
Dim Mod2 As Single = 1.0F
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then
If p.Item.Name.ToLower() = "life orb" Then
If p.Item.OriginalName.ToLower() = "life orb" Then
Mod2 = 1.3F
End If
End If
@ -2066,14 +2099,14 @@
End If
If Not p.Item Is Nothing And BattleScreen.FieldEffects.CanUseItem(Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Own, BattleScreen) = True Then
If p.Item.Name.ToLower() = "expert belt" Then
If p.Item.OriginalName.ToLower() = "expert belt" Then
EB = 1.2F
End If
End If
If Not Op.Item Is Nothing Then
If BattleScreen.FieldEffects.CanUseItem(Not Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Not Own, BattleScreen) = True Then
Select Case Op.Item.Name.ToLower()
Select Case Op.Item.OriginalName.ToLower()
Case "occa"
If Attack.Type.Type = Element.Types.Fire Then
If BattleScreen.Battle.RemoveHeldItem(Not Own, Not Own, BattleScreen, "The Occa Berry weakened the effect of " & Attack.Name & " on " & Op.GetDisplayName() & "!", "berry:occa") = True Then
@ -2183,7 +2216,7 @@
If Not Op.Item Is Nothing Then
If BattleScreen.FieldEffects.CanUseItem(Not Own) = True And BattleScreen.FieldEffects.CanUseOwnItem(Not Own, BattleScreen) = True Then
If Op.Item.Name.ToLower() = "chilan" Then
If Op.Item.OriginalName.ToLower() = "chilan" Then
If Attack.Type.Type = Element.Types.Normal Then
If BattleScreen.Battle.RemoveHeldItem(Not Own, Not Own, BattleScreen, "The Chilan Berry weakened the effect of " & Attack.Name & " on " & Op.GetDisplayName() & "!", "berry:chilan") = True Then
TRB = 0.5F

@ -214,15 +214,7 @@
End Function
Private Function GetBattleMapOffset() As Vector3
Dim v As New Vector3(0)
Dim s As Screen = Core.CurrentScreen
While s.Identification <> Screen.Identifications.BattleScreen And Not s.PreScreen Is Nothing
s = s.PreScreen
End While
If s.Identification = Screen.Identifications.BattleScreen Then
v = CType(s, BattleScreen).BattleMapOffset
End If
Return v
Return BattleScreen.BattleMapOffset
End Function
Public Overrides ReadOnly Property CPosition() As Vector3

@ -7,11 +7,18 @@
Moves
End Enum
Public CanInteract As Boolean = True
Public MenuState As MenuStates = MenuStates.Main
Public Visible As Boolean = False
Public Sub New()
Me.Reset()
Dim blockinteractscreen() As Screen.Identifications = {Screen.Identifications.PartyScreen, Screen.Identifications.SummaryScreen, Screen.Identifications.PauseScreen, Screen.Identifications.ChatScreen}
If blockinteractscreen.Contains(Core.CurrentScreen.Identification) = True Then
CanInteract = False
Else
CanInteract = True
End If
End Sub
Public Sub Reset()
@ -50,7 +57,7 @@
If y > -1 Then
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\WeatherIcons"), New Rectangle(22, Core.windowSize.Height - 90, 176, 68), New Rectangle(x, y, 88, 34), Color.White)
Core.SpriteBatch.DrawString(FontManager.MiniFont, t, New Vector2(110 - FontManager.MiniFont.MeasureString(t).X / 2, Core.windowSize.Height - 44), Color.Black)
Core.SpriteBatch.DrawString(FontManager.MainFont, t, New Vector2(110 - FontManager.MainFont.MeasureString(t).X / 2, Core.windowSize.Height - 44), Color.Black)
End If
End Sub
@ -84,7 +91,7 @@
If y > -1 Then
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\WeatherIcons"), New Rectangle(222, Core.windowSize.Height - 90, 176, 68), New Rectangle(x, y, 88, 34), Color.White)
Core.SpriteBatch.DrawString(FontManager.MiniFont, t, New Vector2(310 - FontManager.MiniFont.MeasureString(t).X / 2, Core.windowSize.Height - 44), Color.Black)
Core.SpriteBatch.DrawString(FontManager.MainFont, t, New Vector2(310 - FontManager.MainFont.MeasureString(t).X / 2, Core.windowSize.Height - 44), Color.Black)
End If
End Sub
@ -104,21 +111,21 @@
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X) + 14, CInt(pos.Y) + 14, 182, 42), New Rectangle(0, 0, 91, 21), shinyHue)
'Name:
Dim nameInformation As String = p.GetDisplayName() & " Lv. " & p.Level.ToString()
Dim nameInformation As String = p.GetDisplayName() & " " & Localization.GetString("property_Lv.", "Lv.") & " " & p.Level.ToString()
Core.SpriteBatch.DrawString(FontManager.MiniFont, nameInformation, New Vector2(pos.X + 2, pos.Y + 2), New Color(0, 0, 0, _moveMenuAlpha))
Core.SpriteBatch.DrawString(FontManager.MiniFont, nameInformation, New Vector2(pos.X, pos.Y), shinyHue)
Core.SpriteBatch.DrawString(FontManager.MainFont, nameInformation, New Vector2(pos.X + 2, pos.Y + 2), New Color(0, 0, 0, _moveMenuAlpha))
Core.SpriteBatch.DrawString(FontManager.MainFont, nameInformation, New Vector2(pos.X, pos.Y), shinyHue)
'Gender:
If p.Gender = Pokemon.Genders.Male Then
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X + 6 + FontManager.MiniFont.MeasureString(nameInformation).X), CInt(pos.Y), 12, 20), New Rectangle(0, 104, 6, 10), New Color(255, 255, 255, _moveMenuAlpha))
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X + 6 + FontManager.MainFont.MeasureString(nameInformation).X), CInt(pos.Y), 12, 20), New Rectangle(0, 104, 6, 10), New Color(255, 255, 255, _moveMenuAlpha))
ElseIf p.Gender = Pokemon.Genders.Female Then
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X + 6 + FontManager.MiniFont.MeasureString(nameInformation).X), CInt(pos.Y), 12, 20), New Rectangle(6, 104, 6, 10), New Color(255, 255, 255, _moveMenuAlpha))
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X + 6 + FontManager.MainFont.MeasureString(nameInformation).X), CInt(pos.Y), 12, 20), New Rectangle(6, 104, 6, 10), New Color(255, 255, 255, _moveMenuAlpha))
End If
'HP indicator:
Core.SpriteBatch.DrawString(FontManager.MiniFont, p.HP & "/" & p.MaxHP, New Vector2(pos.X + 102, pos.Y + 37 + 3), New Color(0, 0, 0, _moveMenuAlpha))
Core.SpriteBatch.DrawString(FontManager.MiniFont, p.HP & "/" & p.MaxHP, New Vector2(pos.X + 100, pos.Y + 35 + 3), shinyHue)
Core.SpriteBatch.DrawString(FontManager.MainFont, p.HP & "/" & p.MaxHP, New Vector2(pos.X + 102, pos.Y + 37 + 3), New Color(0, 0, 0, _moveMenuAlpha))
Core.SpriteBatch.DrawString(FontManager.MainFont, p.HP & "/" & p.MaxHP, New Vector2(pos.X + 100, pos.Y + 35 + 3), shinyHue)
'EXP Bar:
If BattleScreen.CanReceiveEXP = True Then
@ -151,7 +158,7 @@
Dim t = TextureManager.GetTexture("GUI\Battle\Interface")
For dX As Integer = 0 To EXPlength Step 4
Core.SpriteBatch.Draw(t, New Rectangle(CInt(pos.X) + 50 + dX, CInt(pos.Y) + 54, 4, 6), New Rectangle(0, 43, 2, 3), New Color(255, 255, 255, _moveMenuAlpha))
Core.SpriteBatch.Draw(t, New Rectangle(CInt(pos.X) + 50 + dX, CInt(pos.Y) + 64, 4, 6), New Rectangle(0, 43, 2, 3), New Color(255, 255, 255, _moveMenuAlpha))
Next
End If
End If
@ -161,16 +168,16 @@
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X) + 14, CInt(pos.Y) + 14, 182, 32), New Rectangle(0, 21, 91, 16), shinyHue)
'Name:
Dim nameInformation As String = p.GetDisplayName() & " Lv. " & p.Level.ToString()
Dim nameInformation As String = p.GetDisplayName() & " " & Localization.GetString("property_Lv.", "Lv.") & " " & p.Level.ToString()
Core.SpriteBatch.DrawString(FontManager.MiniFont, nameInformation, New Vector2(pos.X + 2, pos.Y + 2), New Color(0, 0, 0, _moveMenuAlpha))
Core.SpriteBatch.DrawString(FontManager.MiniFont, nameInformation, New Vector2(pos.X, pos.Y), shinyHue)
Core.SpriteBatch.DrawString(FontManager.MainFont, nameInformation, New Vector2(pos.X + 2, pos.Y + 2), New Color(0, 0, 0, _moveMenuAlpha))
Core.SpriteBatch.DrawString(FontManager.MainFont, nameInformation, New Vector2(pos.X, pos.Y), shinyHue)
'Gender:
If p.Gender = Pokemon.Genders.Male Then
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X + 6 + FontManager.MiniFont.MeasureString(nameInformation).X), CInt(pos.Y), 12, 20), New Rectangle(0, 104, 6, 10), New Color(255, 255, 255, _moveMenuAlpha))
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X + 6 + FontManager.MainFont.MeasureString(nameInformation).X), CInt(pos.Y), 12, 20), New Rectangle(0, 104, 6, 10), New Color(255, 255, 255, _moveMenuAlpha))
ElseIf p.Gender = Pokemon.Genders.Female Then
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X + 6 + FontManager.MiniFont.MeasureString(nameInformation).X), CInt(pos.Y), 12, 20), New Rectangle(6, 104, 6, 10), New Color(255, 255, 255, _moveMenuAlpha))
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X + 6 + FontManager.MainFont.MeasureString(nameInformation).X), CInt(pos.Y), 12, 20), New Rectangle(6, 104, 6, 10), New Color(255, 255, 255, _moveMenuAlpha))
End If
End If
@ -193,9 +200,9 @@
End If
Dim cX As Integer = 0
If HPpercentage <= 50.0F And HPpercentage > 15.0F Then
If HPpercentage <= 75.0F And HPpercentage > 25.0F Then
cX = 2
ElseIf HPpercentage <= 15.0F Then
ElseIf HPpercentage <= 25.0F Then
cX = 4
End If
@ -213,7 +220,9 @@
End If
If DrawCaught = True Then
If Pokedex.GetEntryType(Core.Player.PokedexData, p.Number) > 1 Then
Dim dexID As String = PokemonForms.GetPokemonDataFileName(p.Number, p.AdditionalData, True)
If Pokedex.GetEntryType(Core.Player.PokedexData, dexID) > 1 Then
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Battle\Interface"), New Rectangle(CInt(pos.X) + caughtX, CInt(pos.Y) + 22, 20, 20), New Rectangle(0, 46, 10, 10), New Color(255, 255, 255, _moveMenuAlpha))
End If
End If
@ -307,12 +316,20 @@
End Sub
Public Sub Update(ByRef BattleScreen As BattleScreen)
Select Case MenuState
Case MenuStates.Main
UpdateMainMenu(BattleScreen)
Case MenuStates.Moves
UpdateMoveMenu(BattleScreen)
End Select
Dim blockinteractscreen() As Screen.Identifications = {Screen.Identifications.PartyScreen, Screen.Identifications.SummaryScreen, Screen.Identifications.PauseScreen, Screen.Identifications.ChatScreen}
If blockinteractscreen.Contains(Core.CurrentScreen.Identification) = True OrElse (BattleScreen.BattleQuery.Count > 0 AndAlso BattleScreen.BattleQuery(0).QueryType = QueryObject.QueryTypes.Textbox) Then
CanInteract = False
Else
CanInteract = True
End If
If CanInteract = True Then
Select Case MenuState
Case MenuStates.Main
UpdateMainMenu(BattleScreen)
Case MenuStates.Moves
UpdateMoveMenu(BattleScreen)
End Select
End If
End Sub
Private _allItemsExtended As Integer = 0
@ -325,6 +342,7 @@
Private _moveMenuIndex As Integer = 0
Private _moveMenuNextIndex As Integer = 0
Private _moveMenuLastIndex As Integer = 0
Private _moveMenuItemList As New List(Of MoveMenuItem)
Private _moveMenuCreatedID As String = ""
Private _moveMenuAlpha As Integer = 255
@ -374,20 +392,20 @@
Public Sub Draw(ByVal AllExtended As Integer, ByVal SelExtended As Integer, ByVal isSelected As Boolean)
Dim extraExtended As Integer = 0
If isSelected = True Then
Canvas.DrawGradient(New Rectangle(Core.ScreenSize.Width - 255, 100 + Index * 96, 255, 112), New Color(42, 167, 198, 0), New Color(42, 167, 198, (SelExtended + AllExtended)), True, -1)
Canvas.DrawGradient(New Rectangle(Core.windowSize.Width - 255, 100 + Index * 96, 255, 112), New Color(42, 167, 198, 0), New Color(42, 167, 198, (SelExtended + AllExtended)), True, -1)
extraExtended = SelExtended
End If
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(Core.ScreenSize.Width - (AllExtended + extraExtended), 116 + Index * 96, 80, 80), New Rectangle(16, 16, 16, 16), Color.White)
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(Core.ScreenSize.Width - (AllExtended + extraExtended) + 80, 116 + Index * 96, AllExtended + extraExtended - 80, 80), New Rectangle(32, 16, 16, 16), Color.White)
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(Core.windowSize.Width - (AllExtended + extraExtended), 116 + Index * 96, 80, 80), New Rectangle(16, 16, 16, 16), Color.White)
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(Core.windowSize.Width - (AllExtended + extraExtended) + 80, 116 + Index * 96, AllExtended + extraExtended - 80, 80), New Rectangle(32, 16, 16, 16), Color.White)
Core.SpriteBatch.Draw(Me.IconUnselected, New Rectangle(Core.ScreenSize.Width - (AllExtended + extraExtended) + 28, 132 + Index * 96, 48, 48), Color.White)
Core.SpriteBatch.Draw(Me.IconUnselected, New Rectangle(Core.windowSize.Width - (AllExtended + extraExtended) + 28, 132 + Index * 96, 48, 48), Color.White)
If isSelected = True Then
Core.SpriteBatch.Draw(Me.IconSelected, New Rectangle(Core.ScreenSize.Width - (AllExtended + extraExtended) + 28, 132 + Index * 96, 48, 48), New Color(255, 255, 255, (SelExtended + AllExtended)))
Core.SpriteBatch.DrawString(FontManager.MainFont, Me.Text, New Vector2(CInt(Core.ScreenSize.Width - (AllExtended + extraExtended) + 86), CInt(144 + Index * 96)), New Color(0, 0, 0, (SelExtended + AllExtended)))
Core.SpriteBatch.Draw(Me.IconSelected, New Rectangle(Core.windowSize.Width - (AllExtended + extraExtended) + 28, 132 + Index * 96, 48, 48), New Color(255, 255, 255, (SelExtended + AllExtended)))
Core.SpriteBatch.DrawString(FontManager.MainFont, Me.Text, New Vector2(CInt(Core.windowSize.Width - (AllExtended + extraExtended) + 86), CInt(144 + Index * 96)), New Color(0, 0, 0, (SelExtended + AllExtended)))
Else
If IconFading > 0 Then
Core.SpriteBatch.Draw(Me.IconSelected, New Rectangle(Core.ScreenSize.Width - (AllExtended) + 28, 132 + Index * 96, 48, 48), New Color(255, 255, 255, IconFading))
Core.SpriteBatch.Draw(Me.IconSelected, New Rectangle(Core.windowSize.Width - (AllExtended) + 28, 132 + Index * 96, 48, 48), New Color(255, 255, 255, IconFading))
End If
End If
End Sub
@ -395,7 +413,7 @@
Public Sub Update(ByVal BattleScreen As BattleScreen, ByVal AllExtended As Integer, ByVal isSelected As Boolean)
Me.Activate(BattleScreen, AllExtended, isSelected)
If isSelected = False Then
If MouseHandler.IsInRectangle(New Rectangle(Core.ScreenSize.Width - (AllExtended) + 28, 132 + Index * 96, 48, 48)) = True Then
If MouseHandler.IsInRectangle(New Rectangle(Core.windowSize.Width - (AllExtended) + 28, 132 + Index * 96, 48, 48)) = True Then
If IconFading < 255 Then
IconFading += 15
If IconFading > 255 Then
@ -422,7 +440,7 @@
Me.ClickAction(BattleScreen)
End If
If Controls.Accept(True, False, False) = True Then
If MouseHandler.IsInRectangle(New Rectangle(Core.ScreenSize.Width - 255, 116 + Index * 96, 255, 80)) = True Then
If MouseHandler.IsInRectangle(New Rectangle(Core.windowSize.Width - 255, 116 + Index * 96, 255, 80)) = True Then
If isSelected = True Then
SoundManager.PlaySound("select")
Me.ClickAction(BattleScreen)
@ -458,23 +476,31 @@
Dim extraExtended As Integer = 0
If isSelected = True Then
Canvas.DrawGradient(New Rectangle(Core.ScreenSize.Width - 255, 100 + Index * 96, 255, 112), New Color(42, 167, 198, 0), New Color(42, 167, 198, (SelExtended + AllExtended) - deductAlpha), True, -1)
Canvas.DrawGradient(New Rectangle(Core.windowSize.Width - 255, 100 + Index * 96, 255, 112), New Color(42, 167, 198, 0), New Color(42, 167, 198, (SelExtended + AllExtended) - deductAlpha), True, -1)
extraExtended = SelExtended
End If
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(Core.ScreenSize.Width - (AllExtended + extraExtended), 116 + Index * 96, 80, 80), New Rectangle(16, 16, 16, 16), New Color(255, 255, 255, 255 - deductAlpha))
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(Core.ScreenSize.Width - (AllExtended + extraExtended) + 80, 116 + Index * 96, AllExtended + extraExtended - 80, 80), New Rectangle(32, 16, 16, 16), New Color(255, 255, 255, 255 - deductAlpha))
Dim BackgroundDrawColor As Color = Color.White
If Move.Disabled > 0 OrElse BattleScreen.FieldEffects.OwnEncore > 0 AndAlso BattleScreen.FieldEffects.OwnEncoreMove.ID <> Move.ID Then
BackgroundDrawColor = New Color(210, 210, 210)
End If
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(Core.windowSize.Width - (AllExtended + extraExtended), 116 + Index * 96, 80, 80), New Rectangle(16, 16, 16, 16), New Color(BackgroundDrawColor.R, BackgroundDrawColor.G, BackgroundDrawColor.B, 255 - deductAlpha))
Core.SpriteBatch.Draw(Me.Texture, New Rectangle(Core.windowSize.Width - (AllExtended + extraExtended) + 80, 116 + Index * 96, AllExtended + extraExtended - 80, 80), New Rectangle(32, 16, 16, 16), New Color(BackgroundDrawColor.R, BackgroundDrawColor.G, BackgroundDrawColor.B, 255 - deductAlpha))
Core.SpriteBatch.Draw(TextureManager.GetTexture("GUI\Menus\Types", Me.Move.Type.GetElementImage(), ""), New Rectangle(Core.ScreenSize.Width - (AllExtended + extraExtended) + 28, 132 + Index * 96, 48, 16), New Color(255, 255, 255, 255 - deductAlpha))
Core.SpriteBatch.Draw(TextureManager.GetTexture(Element.GetElementTexturePath(), Me.Move.Type.GetElementImage(), ""), New Rectangle(Core.windowSize.Width - (AllExtended + extraExtended) + 28, 132 + Index * 96, 48, 16), New Color(255, 255, 255, 255 - deductAlpha))
If isSelected = True Then
Dim ppColor As Color = GetPPColor()
ppColor.A = CByte((extraExtended + AllExtended - deductAlpha).Clamp(0, 255))
If Move.Disabled > 0 OrElse BattleScreen.FieldEffects.OwnEncore > 0 AndAlso BattleScreen.FieldEffects.OwnEncoreMove.ID <> Move.ID Then
Core.SpriteBatch.DrawString(FontManager.MainFont, Localization.GetString("battle_MoveDisabled", "Disabled!"), New Vector2(CInt(Core.windowSize.Width - (AllExtended + extraExtended) + 28), CInt(152 + Index * 96)), Color.Black)
Else
Dim ppColor As Color = GetPPColor()
ppColor.A = CByte((extraExtended + AllExtended - deductAlpha).Clamp(0, 255))
Core.SpriteBatch.DrawString(FontManager.MainFont, Me.Move.CurrentPP & "/" & Me.Move.MaxPP, New Vector2(CInt(Core.ScreenSize.Width - (AllExtended + extraExtended) + 28), CInt(152 + Index * 96)), ppColor)
Core.SpriteBatch.DrawString(FontManager.MainFont, Me.Move.Name, New Vector2(CInt(Core.ScreenSize.Width - (AllExtended + extraExtended) + 86), CInt(132 + Index * 96)), New Color(0, 0, 0, (SelExtended + AllExtended) - deductAlpha))
Core.SpriteBatch.DrawString(FontManager.MainFont, Me.Move.CurrentPP & "/" & Me.Move.MaxPP, New Vector2(CInt(Core.windowSize.Width - (AllExtended + extraExtended) + 28), CInt(152 + Index * 96)), ppColor)
End If
Core.SpriteBatch.DrawString(FontManager.MainFont, Me.Move.Name, New Vector2(CInt(Core.windowSize.Width - (AllExtended + extraExtended) + 86), CInt(132 + Index * 96)), New Color(0, 0, 0, (SelExtended + AllExtended) - deductAlpha))
Else
Core.SpriteBatch.DrawString(FontManager.MainFont, Me.Move.Name, New Vector2(Core.ScreenSize.Width - (AllExtended + extraExtended) + 28, 152 + Index * 96), New Color(0, 0, 0, 255 - (extraExtended + AllExtended) - deductAlpha))
Core.SpriteBatch.DrawString(FontManager.MainFont, Me.Move.Name, New Vector2(Core.windowSize.Width - (AllExtended + extraExtended) + 28, 152 + Index * 96), New Color(0, 0, 0, 255 - (extraExtended + AllExtended) - deductAlpha))
End If
End Sub
@ -498,21 +524,30 @@
Public Sub Activate(ByVal BattleScreen As BattleScreen, ByVal AllExtended As Integer, ByVal isSelected As Boolean)
If BattleScreen.BattleMenu._isExtracting = False And BattleScreen.BattleMenu._isRetracting = False Then
If Me.Move.CurrentPP > 0 Or isSelected = False Then
If Controls.Accept(False, True, True) = True And isSelected = True Then
SoundManager.PlaySound("select")
Me.ClickAction(BattleScreen)
If Me.Move.Disabled = 0 AndAlso BattleScreen.FieldEffects.OwnEncore = 0 OrElse BattleScreen.FieldEffects.OwnEncoreMove.ID = Move.ID Then
BattleScreen.BattleMenu._moveMenuLastIndex = Me.Index
Me.ClickAction(BattleScreen)
End If
End If
If Controls.Accept(True, False, False) = True Then
If MouseHandler.IsInRectangle(New Rectangle(Core.ScreenSize.Width - 255, 116 + Index * 96, 255, 80)) = True Then
If MouseHandler.IsInRectangle(New Rectangle(Core.windowSize.Width - 255, 116 + Index * 96, 255, 80)) = True Then
If isSelected = True Then
SoundManager.PlaySound("select")
Me.ClickAction(BattleScreen)
If Me.Move.Disabled = 0 AndAlso BattleScreen.FieldEffects.OwnEncore = 0 OrElse BattleScreen.FieldEffects.OwnEncoreMove IsNot Nothing AndAlso BattleScreen.FieldEffects.OwnEncoreMove.ID = Move.ID Then
BattleScreen.BattleMenu._moveMenuLastIndex = Me.Index
Me.ClickAction(BattleScreen)
End If
Else
BattleScreen.BattleMenu._moveMenuNextIndex = Me.Index
BattleScreen.BattleMenu._moveMenuLastIndex = Me.Index
BattleScreen.BattleMenu._isRetracting = True
End If
End If
End If
End If
End If
End Sub
@ -612,7 +647,7 @@
TempBattleScreen = BattleScreen
Player.Temp.PokemonScreenIndex = BattleScreen.OwnPokemonIndex
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5), AddressOf ShowPokemonMenu, "Choose Pokémon", False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = False}
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5.ToString), AddressOf ShowPokemonMenu, Localization.GetString("party_screen_ChoosePokemon", "Choose Pokémon"), False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = False}
AddHandler selScreen.SelectedObject, AddressOf ShowPokemonMenuHandler
Core.SetScreen(selScreen)
@ -632,33 +667,33 @@
_mainMenuItemList.Clear()
Select Case BattleScreen.BattleMode
Case BattleSystem.BattleScreen.BattleModes.Safari
Dim safariBallText As String = "Safari Ball x" & Core.Player.Inventory.GetItemAmount(181).ToString()
If Core.Player.Inventory.GetItemAmount(181) = 0 Then
safariBallText = "No Safari Balls."
Dim safariBallText As String = Localization.GetString("item_name_181", "Safari Ball") & " x" & Core.Player.Inventory.GetItemAmount(181.ToString).ToString()
If Core.Player.Inventory.GetItemAmount(181.ToString) = 0 Then
safariBallText = Localization.GetString("battle_NoSafariBalls", "No Safari Balls.")
End If
_mainMenuItemList.Add(New MainMenuItem(4, safariBallText, 0, AddressOf MainMenuUseSafariBall))
_mainMenuItemList.Add(New MainMenuItem(0, "Throw Mud", 1, AddressOf MainMenuThrowMud))
_mainMenuItemList.Add(New MainMenuItem(0, "Throw Bait", 2, AddressOf MainMenuThrowBait))
_mainMenuItemList.Add(New MainMenuItem(0, Localization.GetString("battle_action_ThrowMud", "Throw Mud"), 1, AddressOf MainMenuThrowMud))
_mainMenuItemList.Add(New MainMenuItem(0, Localization.GetString("battle_action_ThrowBait", "Throw Bait"), 2, AddressOf MainMenuThrowBait))
_mainMenuItemList.Add(New MainMenuItem(3, "Run", 3, AddressOf MainMenuRun))
_mainMenuItemList.Add(New MainMenuItem(3, Localization.GetString("battle_action_Run", "Run"), 3, AddressOf MainMenuRun))
Case BattleSystem.BattleScreen.BattleModes.BugContest
_mainMenuItemList.Add(New MainMenuItem(0, "Battle", 0, AddressOf MainMenuOpenBattleMenu))
_mainMenuItemList.Add(New MainMenuItem(0, Localization.GetString("battle_action_Battle", "Battle"), 0, AddressOf MainMenuOpenBattleMenu))
Dim sportBallText As String = "Sport Ball x" & Core.Player.Inventory.GetItemAmount(177).ToString()
If Core.Player.Inventory.GetItemAmount(177) = 0 Then
sportBallText = "No Sport Balls."
Dim sportBallText As String = Localization.GetString("item_name_177", "Sport Ball") & " x" & Core.Player.Inventory.GetItemAmount(177.ToString).ToString()
If Core.Player.Inventory.GetItemAmount(177.ToString) = 0 Then
sportBallText = Localization.GetString("battle_NoSportBalls", "No Sport Balls.")
End If
_mainMenuItemList.Add(New MainMenuItem(4, sportBallText, 1, AddressOf MainMenuUseSportBall))
_mainMenuItemList.Add(New MainMenuItem(1, "Pokémon", 2, AddressOf MainMenuOpenPokemon))
_mainMenuItemList.Add(New MainMenuItem(3, "Run", 3, AddressOf MainMenuRun))
_mainMenuItemList.Add(New MainMenuItem(3, Localization.GetString("battle_action_Run", "Run"), 3, AddressOf MainMenuRun))
Case BattleSystem.BattleScreen.BattleModes.Standard
If BattleScreen.OwnFaint Then
_mainMenuIndex = 0
_mainMenuNextIndex = 0
_mainMenuItemList.Add(New MainMenuItem(1, "Pokémon", 0, AddressOf MainMenuOpenPokemon))
If BattleScreen.IsRemoteBattle AndAlso Not BattleScreen.IsHost Then
_mainMenuItemList.Add(New MainMenuItem(1, "Pokémon", 0, AddressOf MainMenuOpenPokemon))
BattleScreen.OwnFaint = False
End If
ElseIf BattleScreen.OppFaint And BattleScreen.IsRemoteBattle Then
@ -674,12 +709,12 @@
End If
BattleScreen.OppFaint = False
Else
_mainMenuItemList.Add(New MainMenuItem(0, "Battle", 0, AddressOf MainMenuOpenBattleMenu))
_mainMenuItemList.Add(New MainMenuItem(0, Localization.GetString("battle_action_Battle", "Battle"), 0, AddressOf MainMenuOpenBattleMenu))
_mainMenuItemList.Add(New MainMenuItem(1, "Pokémon", 1, AddressOf MainMenuOpenPokemon))
_mainMenuItemList.Add(New MainMenuItem(2, "Bag", 2, AddressOf MainMenuOpenBag))
_mainMenuItemList.Add(New MainMenuItem(2, Localization.GetString("battle_action_Bag", "Bag"), 2, AddressOf MainMenuOpenBag))
If BattleScreen.IsTrainerBattle = False Then
_mainMenuItemList.Add(New MainMenuItem(3, "Run", 3, AddressOf MainMenuRun))
_mainMenuItemList.Add(New MainMenuItem(3, Localization.GetString("battle_action_Run", "Run"), 3, AddressOf MainMenuRun))
MainMenuAddMegaEvolution(BattleScreen, 4)
Else
MainMenuAddMegaEvolution(BattleScreen, 3)
@ -687,16 +722,16 @@
End If
Case BattleSystem.BattleScreen.BattleModes.PVP
_mainMenuItemList.Add(New MainMenuItem(0, "Battle", 0, AddressOf MainMenuOpenBattleMenu))
_mainMenuItemList.Add(New MainMenuItem(0, Localization.GetString("battle_action_Battle", "Battle"), 0, AddressOf MainMenuOpenBattleMenu))
_mainMenuItemList.Add(New MainMenuItem(1, "Pokémon", 1, AddressOf MainMenuOpenPokemon))
_mainMenuItemList.Add(New MainMenuItem(3, "Surrender", 2, AddressOf MainMenuOpenBag))
_mainMenuItemList.Add(New MainMenuItem(3, Localization.GetString("battle_action_Surrender", "Surrender"), 2, AddressOf MainMenuOpenBag))
End Select
End Sub
Private Sub MainMenuAddMegaEvolution(ByVal BattleScreen As BattleScreen, ByVal Index As Integer)
'Checks if the player has the Mega Bracelet.
If Not (Core.Player.Inventory.GetItemAmount(576) > 0) Then
If Not (Core.Player.Inventory.GetItemAmount(576.ToString) > 0) Then
Exit Sub
End If
@ -719,12 +754,19 @@
'Next
Dim PokeIndex As Integer = BattleScreen.OwnPokemonIndex
If BattleScreen.FieldEffects.OwnMegaEvolved = False Then
If Not Core.Player.Pokemons(PokeIndex).Item Is Nothing Then
If Core.Player.Pokemons(PokeIndex).Item.IsMegaStone = True Then
Dim megaStone = CType(Core.Player.Pokemons(PokeIndex).Item, Items.MegaStone)
If megaStone.MegaPokemonNumber = Core.Player.Pokemons(PokeIndex).Number Then
_mainMenuItemList.Add(New MainMenuItem(5, "Mega Evolve!", Index, AddressOf MainMenuMegaEvolve))
If Core.Player.Pokemons(PokeIndex).Item IsNot Nothing Then
If Core.Player.Pokemons(PokeIndex).Item.IsGameModeItem = True Then
If Core.Player.Pokemons(PokeIndex).Item.gmIsMegaStone = True Then
If Core.Player.Pokemons(PokeIndex).Number = CType(Core.Player.Pokemons(PokeIndex).Item, GameModeItem).gmMegaPokemonNumber Then
_mainMenuItemList.Add(New MainMenuItem(5, Localization.GetString("battle_action_MegaEvolve", "Mega Evolve!"), Index, AddressOf MainMenuMegaEvolve))
End If
End If
Else
If Core.Player.Pokemons(PokeIndex).Item.IsMegaStone = True Then
Dim megaStone = CType(Core.Player.Pokemons(PokeIndex).Item, Items.MegaStone)
If megaStone.MegaPokemonNumber = Core.Player.Pokemons(PokeIndex).Number Then
_mainMenuItemList.Add(New MainMenuItem(5, Localization.GetString("battle_action_MegaEvolve", "Mega Evolve!"), Index, AddressOf MainMenuMegaEvolve))
End If
End If
End If
End If
@ -738,7 +780,11 @@
Private Sub MainMenuOpenBattleMenu(ByVal BattleScreen As BattleScreen)
_retractMenu = True
_nextMenuState = MenuStates.Moves
PartyScreen.Selected = -1
If _moveMenuIndex <> _moveMenuLastIndex Then
_moveMenuNextIndex = _moveMenuLastIndex
_moveMenuIndex = _moveMenuLastIndex
End If
BattleScreen.BattleQuery.Clear()
Dim q As New CameraQueryObject(New Vector3(11, 0.5F, 14.0F), New Vector3(11, 0.5F, 14.0F), Screen.Camera.Speed, Screen.Camera.Speed, -(CSng(MathHelper.PiOver4) + 0.3F), -(CSng(MathHelper.PiOver4) + 0.3F), -0.3F, -0.3F, 0.04F, 0.04F)
BattleScreen.BattleQuery.AddRange({q})
@ -748,7 +794,7 @@
TempBattleScreen = BattleScreen
Player.Temp.PokemonScreenIndex = BattleScreen.OwnPokemonIndex
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5), AddressOf ShowPokemonMenu, "Choose Pokémon", True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5.ToString), AddressOf ShowPokemonMenu, Localization.GetString("party_screen_ChoosePokemon", "Choose Pokémon"), True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
AddHandler selScreen.SelectedObject, AddressOf ShowPokemonMenuHandler
Core.SetScreen(selScreen)
@ -778,39 +824,63 @@
Battle.Won = True
Battle.Fled = True
Else
BattleScreen.BattleQuery.Clear()
BattleScreen.BattleQuery.Add(BattleScreen.FocusBattle())
BattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
BattleScreen.Battle.InitializeRound(BattleScreen, New Battle.RoundConst With {.StepType = Battle.RoundConst.StepTypes.Text, .Argument = "Failed to run away."})
Dim Trapped As Boolean = False
Dim p As Pokemon = BattleScreen.OwnPokemon
Dim op As Pokemon = BattleScreen.OppPokemon
If op.Ability.Name.ToLower() = "shadow tag" And p.Ability.Name.ToLower() <> "shadow tag" And op.HP > 0 Then
Trapped = True
End If
If op.Ability.Name.ToLower() = "arena trap" And op.HP > 0 And BattleScreen.FieldEffects.IsGrounded(True, BattleScreen) = True Then
Trapped = True
End If
If op.Ability.Name.ToLower() = "magnet pull" And op.HP > 0 Then
If p.Type1.Type = Element.Types.Steel Or p.Type2.Type = Element.Types.Steel Then
Trapped = True
End If
End If
If Trapped = True Then
Screen.TextBox.Show(Localization.GetString("battle_cannot_run_ability", "Failed to run away because of~") & Localization.GetString("ability_name_" & op.Ability.ID.ToString, op.Ability.Name) & ".", {}, True, True)
Else
BattleScreen.BattleQuery.Clear()
BattleScreen.BattleQuery.Add(BattleScreen.FocusBattle())
BattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
BattleScreen.Battle.InitializeRound(BattleScreen, New Battle.RoundConst With {.StepType = Battle.RoundConst.StepTypes.Text, .Argument = Localization.GetString("battle_cannot_run", "Failed to run away.")})
End If
End If
End Sub
Private Sub MainMenuUseSafariBall(ByVal BattleScreen As BattleScreen)
If Core.Player.Inventory.GetItemAmount(181) > 0 Then
Core.Player.Inventory.RemoveItem(181, 1)
If Core.Player.Inventory.GetItemAmount(181.ToString) > 0 Then
Core.Player.Inventory.RemoveItem(181.ToString, 1)
BattleScreen.BattleQuery.Clear()
BattleScreen.BattleQuery.Add(BattleScreen.FocusBattle())
BattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
Core.SetScreen(New BattleCatchScreen(BattleScreen, Item.GetItemByID(181)))
Core.SetScreen(New BattleCatchScreen(BattleScreen, Item.GetItemByID(181.ToString)))
Dim safariBallText As String = "Safari Ball x" & Core.Player.Inventory.GetItemAmount(181).ToString()
If Core.Player.Inventory.GetItemAmount(181) = 0 Then
safariBallText = "No Safari Balls."
Core.Player.UsedItemsToCheckScriptDelayFor.Add("181")
Dim safariBallText As String = Localization.GetString("item_name_181", "Safari Ball") & " x" & Core.Player.Inventory.GetItemAmount(181.ToString).ToString()
If Core.Player.Inventory.GetItemAmount(181.ToString) = 0 Then
safariBallText = Localization.GetString("battle_NoSafariBalls", "No Safari Balls.")
End If
_mainMenuItemList(0).Text = safariBallText
End If
End Sub
Private Sub MainMenuUseSportBall(ByVal BattleScreen As BattleScreen)
If Core.Player.Inventory.GetItemAmount(177) > 0 Then
Core.Player.Inventory.RemoveItem(177, 1)
If Core.Player.Inventory.GetItemAmount(177.ToString) > 0 Then
Core.Player.Inventory.RemoveItem(177.ToString, 1)
BattleScreen.BattleQuery.Clear()
BattleScreen.BattleQuery.Add(BattleScreen.FocusBattle())
BattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
Core.SetScreen(New BattleCatchScreen(BattleScreen, Item.GetItemByID(177)))
Core.SetScreen(New BattleCatchScreen(BattleScreen, Item.GetItemByID(177.ToString)))
Dim sportBallText As String = "Sport Ball x" & Core.Player.Inventory.GetItemAmount(177).ToString()
If Core.Player.Inventory.GetItemAmount(177) = 0 Then
Dim sportBallText As String = "Sport Ball x" & Core.Player.Inventory.GetItemAmount(177.ToString).ToString()
If Core.Player.Inventory.GetItemAmount(177.ToString) = 0 Then
sportBallText = "No Sport Balls."
End If
_mainMenuItemList(0).Text = sportBallText
@ -874,22 +944,55 @@
_moveMenuItemList.Clear()
BattleScreen.ClearMoveMenuTime = False
End If
If _moveMenuIndex > _moveMenuItemList.Count - 1 Then
_moveMenuIndex = 0
_moveMenuNextIndex = 0
End If
If _moveMenuChoseMove = True Then
_moveMenuAlpha -= 15
If _moveMenuAlpha <= 0 Then
_moveMenuAlpha = 0
MoveMenuStartRound(BattleScreen)
Visible = False
If BattleScreen.OwnPokemon.Attacks(_moveMenuIndex).SwapsOutOwnPokemon = True Then
If PartyScreen.Selected = -1 Then
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5.ToString), Nothing, Localization.GetString("party_screen_ChoosePokemon", "Choose Pokémon"), False, False, False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = False, .SelectButtonText = Localization.GetString("global_switch", "Switch")}
AddHandler selScreen.SelectedObject, Nothing
Core.SetScreen(selScreen)
End If
If CurrentScreen.Identification <> Screen.Identifications.PartyScreen AndAlso PartyScreen.Selected <> -1 Then
If BattleScreen.OwnPokemon.Attacks(_moveMenuIndex).ID = 226 Then
BattleScreen.FieldEffects.OwnBatonPassIndex = PartyScreen.Selected
Else
BattleScreen.FieldEffects.OwnSwapIndex = PartyScreen.Selected
End If
PartyScreen.Selected = -1
MoveMenuStartRound(BattleScreen)
Visible = False
End If
Else
MoveMenuStartRound(BattleScreen)
Visible = False
End If
End If
Else
UseStruggle(BattleScreen)
If _moveMenuItemList.Count = 0 Or _moveMenuCreatedID <> BattleScreen.OwnPokemon.IndividualValue Or BattleScreen.IsChoiced Then
If _moveMenuItemList.Count = 0 Or _moveMenuCreatedID <> BattleScreen.OwnPokemon.IndividualValue Then
If _moveMenuCreatedID <> BattleScreen.OwnPokemon.IndividualValue Then
_moveMenuIndex = 0
End If
CreateMoveMenuItems(BattleScreen)
If _moveMenuIndex <> _moveMenuLastIndex Then
_moveMenuNextIndex = _moveMenuLastIndex
_moveMenuIndex = _moveMenuLastIndex
If _moveMenuIndex > _moveMenuItemList.Count - 1 Then
_moveMenuNextIndex = 0
_moveMenuIndex = 0
_moveMenuLastIndex = 0
End If
End If
_moveMenuCreatedID = BattleScreen.OwnPokemon.IndividualValue
End If
If _retractMenu = False Then
@ -946,12 +1049,18 @@
BattleScreen.BattleQuery.Clear()
BattleScreen.BattleQuery.Add(BattleScreen.FocusBattle())
BattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
Dim SwitchPokeSuffix As String = ""
If BattleScreen.FieldEffects.OwnBatonPassIndex <> -1 Then
SwitchPokeSuffix = ";BATON;" & BattleScreen.FieldEffects.OwnBatonPassIndex
ElseIf BattleScreen.FieldEffects.OwnSwapIndex <> -1 Then
SwitchPokeSuffix = ";SWAP;" & BattleScreen.FieldEffects.OwnSwapIndex
End If
If BattleScreen.IsMegaEvolvingOwn Then
BattleScreen.SendClientCommand("MEGA|" & BattleScreen.OwnPokemon.Attacks(_moveMenuIndex).ID.ToString())
BattleScreen.SendClientCommand("MEGA|" & BattleScreen.OwnPokemon.Attacks(_moveMenuIndex).ID.ToString() & SwitchPokeSuffix)
BattleScreen.IsMegaEvolvingOwn = False
BattleScreen.FieldEffects.OwnMegaEvolved = True
Else
BattleScreen.SendClientCommand("MOVE|" & BattleScreen.OwnPokemon.Attacks(_moveMenuIndex).ID.ToString())
BattleScreen.SendClientCommand("MOVE|" & BattleScreen.OwnPokemon.Attacks(_moveMenuIndex).ID.ToString() & SwitchPokeSuffix)
End If
Else
If BattleScreen.IsMegaEvolvingOwn Then
@ -994,34 +1103,36 @@
Dim Pokemon As Pokemon = Core.Player.Pokemons(PokeIndex)
If PokeIndex = TempBattleScreen.OwnPokemonIndex Then
Screen.TextBox.Show(Pokemon.GetDisplayName() & " is already~in battle!", {}, True, False)
If Pokemon.Status <> P3D.Pokemon.StatusProblems.Fainted Then
Screen.TextBox.Show(Pokemon.GetDisplayName() & " " & Localization.GetString("battle_switch_already_in_battle", "is already~in battle!"), {}, True, False)
Else
Screen.TextBox.Show(Pokemon.GetDisplayName() & " " & Localization.GetString("battle_switch_fainted", "is fainted!"), {}, True, False)
End If
Else
If Pokemon.IsEgg() = False Then
If Pokemon.Status <> P3D.Pokemon.StatusProblems.Fainted Then
If BattleCalculation.CanSwitch(TempBattleScreen, True) = False Then
Screen.TextBox.Show("Cannot switch out.", {}, True, False)
Screen.TextBox.Show(Localization.GetString("battle_cannot_switch", "Cannot switch out."), {}, True, False)
Else
If TempBattleScreen.OwnPokemonIndex <> PokeIndex Then
If TempBattleScreen.IsRemoteBattle = True And TempBattleScreen.IsHost = False Then
TempBattleScreen.OppFaint = False
TempBattleScreen.OwnStatistics.Switches += 1
TempBattleScreen.BattleQuery.Clear()
TempBattleScreen.BattleQuery.Add(TempBattleScreen.FocusBattle())
TempBattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
TempBattleScreen.SendClientCommand("SWITCH|" & PokeIndex.ToString())
Else
TempBattleScreen.BattleQuery.Clear()
TempBattleScreen.BattleQuery.Add(TempBattleScreen.FocusBattle())
TempBattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
TempBattleScreen.Battle.InitializeRound(TempBattleScreen, New Battle.RoundConst With {.StepType = Battle.RoundConst.StepTypes.Switch, .Argument = PokeIndex.ToString()})
End If
If TempBattleScreen.IsRemoteBattle = True And TempBattleScreen.IsHost = False Then
TempBattleScreen.OppFaint = False
TempBattleScreen.OwnStatistics.Switches += 1
TempBattleScreen.BattleQuery.Clear()
TempBattleScreen.BattleQuery.Add(TempBattleScreen.FocusBattle())
TempBattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
TempBattleScreen.SendClientCommand("SWITCH|" & PokeIndex.ToString())
Else
TempBattleScreen.BattleQuery.Clear()
TempBattleScreen.BattleQuery.Add(TempBattleScreen.FocusBattle())
TempBattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
TempBattleScreen.Battle.InitializeRound(TempBattleScreen, New Battle.RoundConst With {.StepType = Battle.RoundConst.StepTypes.Switch, .Argument = PokeIndex.ToString()})
End If
End If
Else
Screen.TextBox.Show(Pokemon.GetDisplayName() & " is fainted!", {}, True, False)
Screen.TextBox.Show(Pokemon.GetDisplayName() & " " & Localization.GetString("battle_switch_fainted", "is fainted!"), {}, True, False)
End If
Else
Screen.TextBox.Show("Cannot switch in~the egg!", {}, True, False)
Screen.TextBox.Show(Localization.GetString("battle_switch_egg", "Cannot switch in~the egg!"), {}, True, False)
End If
End If
End Sub
@ -1031,21 +1142,21 @@
#Region "UseItem"
Private Shared Sub SelectedItemHandler(ByVal params As Object())
SelectedItem(CInt(params(0)))
SelectedItem(CStr(params(0)))
End Sub
Private Shared Sub SelectedItem(ByVal itemID As Integer)
Dim Item As Item = Item.GetItemByID(itemID)
Private Shared Sub SelectedItem(ByVal itemID As String)
Dim Item As Item = Item.GetItemByID(itemID.ToString)
If Item.CanBeUsedInBattle = True Then
If Item.IsBall = True Then
Core.Player.Inventory.RemoveItem(itemID, 1)
Core.Player.Inventory.RemoveItem(itemID.ToString, 1)
If TempBattleScreen.IsTrainerBattle = False Then
If BattleScreen.CanCatch = True Or CBool(GameModeManager.GetGameRuleValue("OnlyCaptureFirst", "0")) = True And Core.Player.PokeFiles.Contains(BattleScreen.TempPokeFile) = True Then
If BattleScreen.CanCatch = True Or CBool(GameModeManager.GetGameRuleValue("OnlyCaptureFirst", "0")) = True And Core.Player.PokeFiles.Contains(BattleScreen.TempPokeFile) = False Then
TempBattleScreen.BattleQuery.Clear()
TempBattleScreen.BattleQuery.Add(TempBattleScreen.FocusBattle())
TempBattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
Core.SetScreen(New BattleCatchScreen(TempBattleScreen, Item.GetItemByID(itemID)))
Core.SetScreen(New BattleCatchScreen(TempBattleScreen, Item.GetItemByID(itemID.ToString)))
PlayerStatistics.Track("[4]Poké Balls used", 1)
Else
TempBattleScreen.BattleQuery.Clear()
@ -1064,7 +1175,7 @@
If Item.BattleSelectPokemon = True Then
'Core.SetScreen(New PartyScreen(Core.CurrentScreen, Item, AddressOf UseItem, "Use " & Item.Name, True))
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item, AddressOf Item.UseOnPokemon, "Use " & Item.Name, True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item, AddressOf Item.UseOnPokemon, Localization.GetString("global_use", "Use") & " " & Item.OneLineName(), True) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
AddHandler selScreen.SelectedObject, AddressOf UseItemHandler
Core.SetScreen(selScreen)
@ -1075,9 +1186,9 @@
End If
End Sub
Shared TempItemID As Integer = -1
Shared TempItemID As String = "-1"
Private Shared Sub UseItemhandler(ByVal params As Object())
Private Shared Sub UseItemHandler(ByVal params As Object())
UseItem(CInt(params(0)))
End Sub
@ -1086,8 +1197,8 @@
Dim Item As Item = Item.GetItemByID(TempItemID)
TempBattleScreen.BattleQuery.Clear()
If Item.UseOnPokemon(PokeIndex) = True Then
TempBattleScreen.BattleQuery.Clear()
TempBattleScreen.BattleQuery.Add(TempBattleScreen.FocusBattle())
TempBattleScreen.BattleQuery.Insert(0, New ToggleMenuQueryObject(True))
TempBattleScreen.Battle.InitializeRound(TempBattleScreen, New Battle.RoundConst With {.StepType = Battle.RoundConst.StepTypes.Item, .Argument = TempItemID.ToString()})

File diff suppressed because it is too large Load Diff

@ -42,6 +42,7 @@
Public OwnYawn As Integer = 0 'Yawn move counter
Public OwnPerishSongCount As Integer = 0 'Perishsong move counter
Public OwnConfusionTurns As Integer = 0 'Turns until confusion runs out
Public TempOwnConfusionTurns As Integer = 0 'For the functionality of Berserk Gene
Public OwnTorment As Integer = 0 'Torment move counter
Public OwnTormentMove As Attack = Nothing 'Torment move
Public OwnMetronomeItemCount As Integer = 0 'The counter for the item Metronome
@ -63,6 +64,7 @@
Public OwnLockOn As Integer = 0 'Counter for the moves lock-on and mind reader
Public OwnBideCounter As Integer = 0 'Counter for the Bide move
Public OwnBideDamage As Integer = 0 'Half of the damage dealt by bide
Public OwnRageFistPower As Integer = 0 'how much the Power of the attack Rage Fist increases
Public OwnLansatBerry As Integer = 0 'Raise critical hit ration when Lansat got eaten
Public OwnCustapBerry As Integer = 0 'Raises the attack speed once when Custap got eaten
Public OwnTrappedCounter As Integer = 0 'If the pokemon is trapped (for example by Spider Web), this is =1
@ -127,6 +129,9 @@
Public OwnFutureSightTurns As Integer = 0 'Turns until Futuresight hits
Public OwnFutureSightID As Integer = 0 'Move ID for the Futuresight move
Public OwnUsedRandomMove As Boolean = False 'Metronome for example
Public OwnUsedMirrorMove As Boolean = False
'Opp stuff
Public OppSpikes As Integer = 0
Public OppStealthRock As Integer = 0
@ -181,6 +186,7 @@
Public OppFutureSightID As Integer = 0
Public OppPerishSongCount As Integer = 0
Public OppConfusionTurns As Integer = 0
Public TempOppConfusionTurns As Integer = 0
Public OppTorment As Integer = 0
Public OppTormentMove As Attack = Nothing
Public OppMetronomeItemCount As Integer = 0
@ -201,6 +207,7 @@
Public OppSolarBlade As Integer = 0
Public OppLockOn As Integer = 0
Public OppBideCounter As Integer = 0
Public OppRageFistPower As Integer = 0
Public OppBideDamage As Integer = 0
Public OppLansatBerry As Integer = 0
Public OppCustapBerry As Integer = 0
@ -249,6 +256,9 @@
Public OppSandTomb As Integer = 0
Public OppInfestation As Integer = 0
Public OppUsedRandomMove As Boolean = False
Public OppUsedMirrorMove As Boolean = False
Public OppUsedMoves As New List(Of Integer)
'Weather
@ -281,18 +291,24 @@
'Special stuff
Public RunTries As Integer = 0
Public UsedPokemon As New List(Of Integer)
Public StolenItemIDs As New List(Of Integer)
Public StolenItemIDs As New List(Of String)
Public DefeatedTrainerPokemon As Boolean = False
Public RoamingFled As Boolean = False
'Moves that swap out Pokémon
Public OwnSwapIndex As Integer = -1
Public OppSwapIndex As Integer = -1
'BatonPassTemp:
Public OwnUsedBatonPass As Boolean = False
Public OwnBatonPassStats As List(Of Integer)
Public OwnBatonPassConfusion As Boolean = False
Public OwnBatonPassIndex As Integer = -1
Public OppUsedBatonPass As Boolean = False
Public OppBatonPassStats As List(Of Integer)
Public OppBatonPassConfusion As Boolean = False
Public OppBatonPassIndex As Integer = -1
Public Function CanUseItem(ByVal own As Boolean) As Boolean
Dim embargo As Integer = OwnEmbargo
@ -364,10 +380,10 @@
grounded = False
End If
If Not p.Item Is Nothing Then
If p.Item.Name.ToLower() = "air balloon" And BattleScreen.FieldEffects.CanUseItem(True) = True And BattleScreen.FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
If p.Item.OriginalName.ToLower() = "air balloon" And BattleScreen.FieldEffects.CanUseItem(True) = True And BattleScreen.FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
grounded = False
End If
If p.Item.Name.ToLower() = "iron ball" And BattleScreen.FieldEffects.CanUseItem(True) = True And BattleScreen.FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
If p.Item.OriginalName.ToLower() = "iron ball" And BattleScreen.FieldEffects.CanUseItem(True) = True And BattleScreen.FieldEffects.CanUseOwnItem(True, BattleScreen) = True Then
grounded = True
End If
End If
@ -377,7 +393,7 @@
End If
Else
p = BattleScreen.OppPokemon
If p.Type1.Type = Element.Types.Flying Or p.Type2.Type = Element.Types.Flying Or p.Ability.Name.ToLower() = "levitate" And BattleScreen.FieldEffects.CanUseAbility(True, BattleScreen) = True Then
If p.Type1.Type = Element.Types.Flying Or (p.Type2 IsNot Nothing AndAlso p.Type2.Type = Element.Types.Flying) Or p.Ability.Name.ToLower() = "levitate" And BattleScreen.FieldEffects.CanUseAbility(False, BattleScreen) = True Then
grounded = False
End If
If BattleScreen.FieldEffects.Gravity > 0 Or BattleScreen.FieldEffects.OppSmacked > 0 Or BattleScreen.FieldEffects.OppIngrain > 0 Then
@ -387,10 +403,10 @@
grounded = False
End If
If Not p.Item Is Nothing Then
If p.Item.Name.ToLower() = "air balloon" And BattleScreen.FieldEffects.CanUseItem(False) = True And BattleScreen.FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
If p.Item.OriginalName.ToLower() = "air balloon" And BattleScreen.FieldEffects.CanUseItem(False) = True And BattleScreen.FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
grounded = False
End If
If p.Item.Name.ToLower() = "iron ball" And BattleScreen.FieldEffects.CanUseItem(False) = True And BattleScreen.FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
If p.Item.OriginalName.ToLower() = "iron ball" And BattleScreen.FieldEffects.CanUseItem(False) = True And BattleScreen.FieldEffects.CanUseOwnItem(False, BattleScreen) = True Then
grounded = True
End If
End If

@ -1,48 +1,51 @@
Namespace BattleSystem
Imports System.Xml
Namespace BattleSystem
Public Class AnimationQueryObject
Inherits QueryObject
Public AnimationStarted As Boolean = False
Public AnimationEnded As Boolean = False
Public BattleFlipped As Boolean = Nothing
Public AnimationSequence As List(Of BattleAnimation3D)
Public SpawnedEntities As List(Of Entity)
Public CurrentEntity As Entity
Public CurrentModel As Entity
Dim AnimationStarted As Boolean = False
Dim AnimationEnded As Boolean = False
Dim BattleFlipped As Boolean = Nothing
Dim AnimationSequence As List(Of BattleAnimation3D)
Dim SpawnedEntities As List(Of Entity)
Dim CurrentEntity As Entity
Public DrawBeforeEntities As Boolean
Dim Backgrounds As List(Of Entity)
Dim RenderObjects As List(Of Entity)
Public Overrides ReadOnly Property IsReady As Boolean
Get
Return AnimationEnded
End Get
End Property
Public Sub New(ByVal entity As Entity, ByVal BattleFlipped As Boolean, Optional ByVal model As Entity = Nothing, Optional DrawBeforeEntities As Boolean = False)
Public Sub New(ByVal Entity As Entity, ByVal BattleFlipped As Boolean, Optional DrawBeforeEntities As Boolean = False)
MyBase.New(QueryTypes.MoveAnimation)
Me.AnimationSequence = New List(Of BattleAnimation3D)
Me.SpawnedEntities = New List(Of Entity)
Me.DrawBeforeEntities = DrawBeforeEntities
Me.BattleFlipped = BattleFlipped
If entity IsNot Nothing Then
Me.CurrentEntity = entity
End If
If model IsNot Nothing Then
Me.CurrentModel = model
Me.Backgrounds = New List(Of Entity)
Me.RenderObjects = New List(Of Entity)
If Entity IsNot Nothing Then
Me.CurrentEntity = Entity
End If
AnimationSequenceBegin()
End Sub
Public Overrides Sub Draw(ByVal BV2Screen As BattleScreen)
Dim Backgrounds As New List(Of Entity)
Dim RenderObjects As New List(Of Entity)
For Each a As BattleAnimation3D In Me.AnimationSequence
If a.AnimationType = BattleAnimation3D.AnimationTypes.Background Then
If Backgrounds.Contains(a) = False AndAlso a.AnimationType = BattleAnimation3D.AnimationTypes.Background Then
Backgrounds.Add(a)
End If
Next
For Each entity As BattleAnimation3D In Me.SpawnedEntities
RenderObjects.Add(entity)
If RenderObjects.Contains(entity) = False Then
RenderObjects.Add(entity)
End If
Next
If RenderObjects.Count > 0 Then
RenderObjects = (From r In RenderObjects Order By r.CameraDistance Descending).ToList()
@ -54,6 +57,8 @@
[Object].UpdateModel()
[Object].Render()
Next
RenderObjects.Clear()
Backgrounds.Clear()
End Sub
Public Overrides Sub Update(BV2Screen As BattleScreen)
@ -98,23 +103,32 @@
End Sub
Public Sub AnimationSequenceEnd()
SpawnedEntities.Clear()
Backgrounds.Clear()
RenderObjects.Clear()
AnimationEnded = True
End Sub
Public Function SpawnEntity(ByVal Position As Vector3, ByVal Texture As Texture2D, ByVal Scale As Vector3, ByVal Opacity As Single, Optional ByVal startDelay As Single = 0.0F, Optional ByVal endDelay As Single = 0.0F) As Entity
Public Function SpawnEntity(ByVal Position As Vector3, ByVal Texture As Texture2D, ByVal Scale As Vector3, ByVal Opacity As Single, Optional ByVal startDelay As Single = 0.0F, Optional ByVal endDelay As Single = 0.0F, Optional ModelPath As String = "") As Entity
Dim NewPosition As Vector3
If Not Position = Nothing Then
If BattleFlipped = True Then
Position.X *= -1
End If
If CurrentEntity IsNot Nothing Then
If BattleFlipped = True Then
Position.X *= -1
End If
NewPosition = CurrentEntity.Position + Position
If CurrentEntity.Model IsNot Nothing Then
NewPosition.Y += 0.5F
End If
Else
NewPosition = Position
End If
Else
If CurrentEntity IsNot Nothing Then
NewPosition = CurrentEntity.Position
If CurrentEntity.Model IsNot Nothing Then
NewPosition.Y += 0.5F
End If
Else
NewPosition = New Vector3(0, 0, 0)
End If
@ -123,6 +137,19 @@
SpawnedEntity.Opacity = Opacity
SpawnedEntity.Visible = False
If ModelPath <> "" Then
SpawnedEntity.ModelPath = ModelPath
SpawnedEntity.Model = ModelManager.GetModel(SpawnedEntity.ModelPath)
SpawnedEntity.Scale *= ModelManager.MODELSCALE
If BattleFlipped = True Then
Dim FlipRotation As Integer = Entity.GetRotationFromVector(SpawnedEntity.Rotation)
FlipRotation += 2
If FlipRotation > 3 Then
FlipRotation -= 4
End If
SpawnedEntity.Rotation.Y = Entity.GetRotationFromInteger(FlipRotation).Y
End If
End If
SpawnedEntities.Add(SpawnedEntity)
Return SpawnedEntity
@ -144,16 +171,12 @@
End Sub
Public Sub AnimationMove(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal DestinationX As Single, ByVal DestinationY As Single, ByVal DestinationZ As Single, ByVal Speed As Single, ByVal SpinX As Boolean, ByVal SpinZ As Boolean, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal SpinXSpeed As Single = 0.1F, Optional ByVal SpinZSpeed As Single = 0.1F, Optional MovementCurve As Integer = 3, Optional MoveYSpeed As Single = 0.0F)
Public Sub AnimationMove(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal DestinationX As Single, ByVal DestinationY As Single, ByVal DestinationZ As Single, ByVal Speed As Single, ByVal SpinX As Boolean, ByVal SpinZ As Boolean, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal SpinXSpeed As Single = 0.1F, Optional ByVal SpinZSpeed As Single = 0.1F, Optional MoveYSpeed As Single = 0.0F, Optional MovementCurve As Integer = 3)
Dim MoveEntity As Entity
Dim ModelEntity As Entity = Nothing
Dim Destination As Vector3
If Entity Is Nothing Then
MoveEntity = CurrentEntity
If Me.CurrentModel IsNot Nothing Then
ModelEntity = Me.CurrentModel
End If
Else
MoveEntity = Entity
End If
@ -161,13 +184,14 @@
If Not BattleFlipped = Nothing Then
If BattleFlipped = True Then
DestinationX *= -1.0F
DestinationZ *= -1.0F
If SpinZ = True Then
SpinXSpeed *= -1.0F
SpinZSpeed *= -1.0F
End If
End If
End If
If CurrentEntity Is Nothing Then
Destination = MoveEntity.Position + New Vector3(DestinationX, DestinationY, DestinationZ)
Else
@ -177,21 +201,80 @@
Dim baEntityMove As BAEntityMove = New BAEntityMove(MoveEntity, RemoveEntityAfter, Destination, Speed, SpinX, SpinZ, startDelay, endDelay, SpinXSpeed, SpinZSpeed, MovementCurve, MoveYSpeed)
AnimationSequence.Add(baEntityMove)
If ModelEntity IsNot Nothing Then
Dim baModelMove As BAEntityMove = New BAEntityMove(CType(CurrentModel, Entity), False, Destination, Speed, SpinX, SpinZ, startDelay, endDelay, SpinXSpeed, SpinZSpeed, MovementCurve, MoveYSpeed)
AnimationSequence.Add(baModelMove)
End Sub
Public Sub AnimationOscillateMove(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal Distance As Vector3, ByVal Speed As Single, ByVal BothWays As Boolean, ByVal Duration As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional MovementCurve As Integer = 0, Optional ReturnToStart As Vector3 = Nothing)
Dim MoveEntity As Entity
Dim ReturnPosition As New Vector3(0)
If Entity Is Nothing Then
MoveEntity = CurrentEntity
Else
MoveEntity = Entity
End If
If Not BattleFlipped = Nothing Then
If BattleFlipped = True Then
Distance.Z *= -1.0F
End If
End If
Dim DurationWhole = CSng(Math.Truncate(CDbl(Duration / 6.0F)))
Dim DurationFraction = CSng((Duration / 6.0F - DurationWhole) * 1000)
Dim DurationTime As TimeSpan = New TimeSpan(0, 0, 0, CInt(DurationWhole), CInt(DurationFraction))
Dim baEntityOscillateMove As BAEntityOscillateMove = New BAEntityOscillateMove(MoveEntity, RemoveEntityAfter, Distance, Speed, BothWays, DurationTime, startDelay, endDelay, MovementCurve, ReturnToStart)
AnimationSequence.Add(baEntityOscillateMove)
End Sub
Public Sub AnimationSetPosition(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal PositionX As Single, ByVal PositionY As Single, ByVal PositionZ As Single, ByVal startDelay As Single, ByVal endDelay As Single)
Dim SetEntity As Entity
Dim SetPosition As Vector3
If Entity Is Nothing Then
SetEntity = CurrentEntity
Else
SetEntity = Entity
End If
SetPosition = New Vector3(PositionX, PositionY, PositionZ) + BattleScreen.BattleMapOffset
Dim baEntitySetPosition As BAEntitySetPosition = New BAEntitySetPosition(SetEntity, RemoveEntityAfter, SetPosition, startDelay, endDelay)
AnimationSequence.Add(baEntitySetPosition)
End Sub
Public Sub AnimationColor(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal TransitionSpeedIn As Single, ByVal ReturnToFromWhenDone As Boolean, ByVal startDelay As Single, ByVal endDelay As Single, ByVal VectorColorTo As Vector3, Optional ByVal VectorColorFrom As Vector3 = Nothing, Optional TransitionSpeedOut As Single = -1)
Dim ColorEntity As Entity
If Entity Is Nothing Then
ColorEntity = CurrentEntity
Else
ColorEntity = Entity
End If
Dim baEntityColor As BAEntityColor = New BAEntityColor(ColorEntity, RemoveEntityAfter, TransitionSpeedIn, ReturnToFromWhenDone, startDelay, endDelay, VectorColorTo, VectorColorFrom, TransitionSpeedOut)
AnimationSequence.Add(baEntityColor)
End Sub
Public Sub AnimationColor(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal TransitionSpeedIn As Single, ByVal ReturnToFromWhenDone As Boolean, ByVal startDelay As Single, ByVal endDelay As Single, ByVal ColorTo As Color, Optional ByVal ColorFrom As Color = Nothing, Optional TransitionSpeedOut As Single = -1)
Dim ColorEntity As Entity
If Entity Is Nothing Then
ColorEntity = CurrentEntity
Else
ColorEntity = Entity
End If
Dim VectorColorTo As Vector3 = ColorTo.ToVector3
Dim VectorColorFrom As Vector3 = Nothing
If ColorFrom <> Nothing Then
VectorColorFrom = ColorFrom.ToVector3
End If
Dim baEntityColor As BAEntityColor = New BAEntityColor(ColorEntity, RemoveEntityAfter, TransitionSpeedIn, ReturnToFromWhenDone, startDelay, endDelay, VectorColorTo, VectorColorFrom, TransitionSpeedOut)
AnimationSequence.Add(baEntityColor)
End Sub
Public Sub AnimationFade(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal TransitionSpeed As Single, ByVal FadeIn As Boolean, ByVal EndState As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal startState As Single = -1.0F)
Dim FadeEntity As Entity
Dim FadeModel As Entity = Nothing
If Entity Is Nothing Then
FadeEntity = CurrentEntity
If Me.CurrentModel IsNot Nothing Then
FadeModel = Me.CurrentModel
End If
Else
FadeEntity = Entity
End If
@ -199,20 +282,12 @@
Dim baEntityOpacity As BAEntityOpacity = New BAEntityOpacity(FadeEntity, RemoveEntityAfter, TransitionSpeed, FadeIn, EndState, startDelay, endDelay, startState)
AnimationSequence.Add(baEntityOpacity)
If FadeModel IsNot Nothing Then
Dim baModelOpacity As BAEntityOpacity = New BAEntityOpacity(CType(FadeModel, Entity), False, TransitionSpeed, FadeIn, EndState, startDelay, endDelay, startState)
AnimationSequence.Add(baModelOpacity)
End If
End Sub
Public Sub AnimationRotate(Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal RotationSpeedX As Single, ByVal RotationSpeedY As Single, ByVal RotationSpeedZ As Single, ByVal EndRotationX As Single, ByVal EndRotationY As Single, ByVal EndRotationZ As Single, ByVal startDelay As Single, ByVal endDelay As Single, ByVal DoXRotation As Boolean, ByVal DoYRotation As Boolean, ByVal DoZRotation As Boolean, ByVal DoReturn As Boolean)
Dim RotateEntity As Entity
Dim RotateModel As Entity = Nothing
If Entity Is Nothing Then
RotateEntity = CurrentEntity
If Me.CurrentModel IsNot Nothing Then
RotateModel = Me.CurrentModel
End If
Else
RotateEntity = Entity
End If
@ -222,21 +297,12 @@
Dim baEntityRotate As BAEntityRotate = New BAEntityRotate(RotateEntity, RemoveEntityAfter, RotationSpeedVector, EndRotation, startDelay, endDelay, DoXRotation, DoYRotation, DoZRotation, DoReturn)
AnimationSequence.Add(baEntityRotate)
If RotateModel IsNot Nothing Then
Dim baModelRotate As BAEntityRotate = New BAEntityRotate(CType(RotateModel, Entity), False, RotationSpeedVector, EndRotation, startDelay, endDelay, DoXRotation, DoYRotation, DoZRotation, DoReturn)
AnimationSequence.Add(baModelRotate)
End If
End Sub
Public Sub AnimationTurnNPC(ByVal TurnSteps As Integer, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal EndFaceRotation As Integer = -1, Optional ByVal TurnSpeed As Integer = 1, Optional ByVal TurnDelay As Single = 0.25F)
Dim TurnNPC As NPC = Nothing
Dim TurnModel As Entity = Nothing
If CurrentEntity IsNot Nothing Then
TurnNPC = CType(CurrentEntity, NPC)
If Me.CurrentModel IsNot Nothing Then
TurnModel = Me.CurrentModel
End If
End If
If Not BattleFlipped = Nothing AndAlso BattleFlipped = True Then
@ -244,17 +310,19 @@
TurnSpeed *= -1
End If
Dim BAEntityFaceRotate As BAEntityFaceRotate = New BAEntityFaceRotate(TurnNPC, TurnSteps, startDelay, endDelay, EndFaceRotation, TurnSpeed, TurnDelay, TurnModel)
Dim BAEntityFaceRotate As BAEntityFaceRotate = New BAEntityFaceRotate(TurnNPC, TurnSteps, startDelay, endDelay, EndFaceRotation, TurnSpeed, TurnDelay)
AnimationSequence.Add(BAEntityFaceRotate)
End Sub
Public Sub AnimationScale(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal Grow As Boolean, ByVal EndSizeX As Single, ByVal EndSizeY As Single, ByVal EndSizeZ As Single, ByVal SizeSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal Anchors As String = "")
Public Sub AnimationScale(ByVal Entity As Entity, ByVal RemoveEntityAfter As Boolean, ByVal Grow As Boolean, ByVal EndSizeX As Single, ByVal EndSizeY As Single, ByVal EndSizeZ As Single, ByVal SizeSpeed As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal Anchors As String = "", Optional SpeedMultiplier As Vector3 = Nothing)
Dim ScaleEntity As Entity
Dim ScaleModel As Entity = Nothing
If Entity Is Nothing Then
ScaleEntity = CurrentEntity
If Me.CurrentModel IsNot Nothing Then
ScaleModel = Me.CurrentModel
If ScaleEntity.Model IsNot Nothing Then
EndSizeX *= ModelManager.MODELSCALE
EndSizeY *= ModelManager.MODELSCALE
EndSizeZ *= ModelManager.MODELSCALE
SizeSpeed *= ModelManager.MODELSCALE
End If
Else
ScaleEntity = Entity
@ -262,23 +330,41 @@
Dim Scale As Vector3 = ScaleEntity.Scale
Dim EndSize As Vector3 = New Vector3(EndSizeX, EndSizeY, EndSizeZ)
Dim baEntityScale As BAEntityScale = New BAEntityScale(ScaleEntity, RemoveEntityAfter, Scale, Grow, EndSize, SizeSpeed, startDelay, endDelay, Anchors)
Dim baEntityScale As BAEntityScale = New BAEntityScale(ScaleEntity, RemoveEntityAfter, Scale, Grow, EndSize, SizeSpeed, startDelay, endDelay, Anchors, SpeedMultiplier)
AnimationSequence.Add(baEntityScale)
If ScaleModel IsNot Nothing Then
Dim baModelScale As BAEntityScale = New BAEntityScale(CType(ScaleModel, Entity), False, Scale, Grow, EndSize, SizeSpeed, startDelay, endDelay, Anchors)
End If
End Sub
Public Sub AnimationPlaySound(ByVal sound As String, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal stopMusic As Boolean = False, Optional ByVal IsPokemon As Boolean = False)
Dim baSound As BAPlaySound = New BAPlaySound(sound, startDelay, endDelay, stopMusic, IsPokemon)
Public Sub AnimationPlaySound(ByVal sound As String, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal stopMusic As Boolean = False, Optional ByVal IsPokemon As Boolean = False, Optional ByVal CrySuffix As String = "")
Dim baSound As BAPlaySound = New BAPlaySound(sound, startDelay, endDelay, stopMusic, IsPokemon, CrySuffix)
AnimationSequence.Add(baSound)
End Sub
Public Sub AnimationBackground(Texture As Texture2D, ByVal TransitionSpeed As Single, ByVal FadeIn As Boolean, ByVal FadeOut As Boolean, ByVal EndState As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional ByVal startState As Single = 0.0F)
Dim baBackground As BABackground = New BABackground(Texture, TransitionSpeed, FadeIn, FadeOut, EndState, startDelay, endDelay, startState)
Public Sub AnimationBackground(ByVal Texture As Texture2D, ByVal startDelay As Single, ByVal endDelay As Single, ByVal Duration As Single, Optional ByVal AfterFadeInOpacity As Single = 1.0F, Optional ByVal FadeInSpeed As Single = 0.125F, Optional ByVal FadeOutSpeed As Single = 0.125F, Optional ByVal DoTile As Boolean = False, Optional ByVal AnimationLength As Integer = 1, Optional ByVal AnimationSpeed As Integer = 4, Optional ByVal Scale As Integer = 4)
Dim baBackground As BABackground = New BABackground(Texture, startDelay, endDelay, Duration, AfterFadeInOpacity, FadeInSpeed, FadeOutSpeed, DoTile, AnimationLength, AnimationSpeed, Scale)
AnimationSequence.Add(baBackground)
End Sub
Public Sub AnimationCameraChangeAngle(ByRef Battlescreen As BattleScreen, ByVal CameraAngleID As Integer, ByVal startDelay As Single, ByVal endDelay As Single)
Dim baCameraChangeAngle As BACameraChangeAngle = New BACameraChangeAngle(Battlescreen, CameraAngleID, startDelay, endDelay)
AnimationSequence.Add(baCameraChangeAngle)
End Sub
Public Sub AnimationCameraOscillateMove(ByVal Distance As Vector3, ByVal Speed As Single, ByVal BothWays As Boolean, ByVal Duration As Single, ByVal startDelay As Single, ByVal endDelay As Single, Optional MovementCurve As Integer = 0, Optional ReturnToStart As Vector3 = Nothing)
Dim ReturnPosition As New Vector3(0)
If Not BattleFlipped = Nothing Then
If BattleFlipped = True Then
Distance.Z *= -1.0F
End If
End If
Dim DurationWhole = CSng(Math.Truncate(CDbl(Duration / 6.0F)))
Dim DurationFraction = CSng((Duration / 6.0F - DurationWhole) * 1000)
Dim DurationTime As TimeSpan = New TimeSpan(0, 0, 0, CInt(DurationWhole), CInt(DurationFraction))
Dim baCameraOscillateMove As BACameraOscillateMove = New BACameraOscillateMove(Distance, Speed, BothWays, DurationTime, startDelay, endDelay, MovementCurve, ReturnToStart)
AnimationSequence.Add(baCameraOscillateMove)
End Sub
End Class
End Namespace

@ -6,17 +6,19 @@
Dim _sound As String = ""
Dim _isPokemonSound As Boolean = False
Dim _crySuffix As String = ""
Dim _delay As Single = 0.0F
Public Sub New(ByVal sound As String, ByVal isPokemonSound As Boolean)
Me.New(sound, isPokemonSound, 0.0F)
Public Sub New(ByVal sound As String, ByVal isPokemonSound As Boolean, Optional ByVal CrySuffix As String = "")
Me.New(sound, isPokemonSound, 0.0F, CrySuffix)
End Sub
Public Sub New(ByVal sound As String, ByVal isPokemonSound As Boolean, ByVal delay As Single)
Public Sub New(ByVal sound As String, ByVal isPokemonSound As Boolean, ByVal delay As Single, Optional ByVal CrySuffix As String = "")
MyBase.New(QueryTypes.PlaySound)
Me._sound = sound
Me._isPokemonSound = isPokemonSound
Me._crySuffix = CrySuffix
Me._delay = delay
Me.PassThis = True
End Sub
@ -34,7 +36,7 @@
Private Sub InternalPlaySound()
If _isPokemonSound = True Then
SoundManager.PlayPokemonCry(CInt(_sound))
SoundManager.PlayPokemonCry(CInt(_sound), _crySuffix)
Else
SoundManager.PlaySound(Me._sound, False)
End If

@ -60,11 +60,11 @@
If GamePad.GetState(PlayerIndex.One).IsConnected = True And Core.GameOptions.GamePadEnabled = True And BV2Screen.IsCurrentScreen() = True Then
Dim d As New Dictionary(Of Buttons, String)
d.Add(Buttons.A, "OK")
d.Add(Buttons.A, Localization.GetString("global_ok", "OK"))
BV2Screen.DrawGamePadControls(d, New Vector2(rec.X + rec.Width - 100, rec.Y + rec.Height - 40))
Else
If TextReady = True Then
Core.SpriteBatch.DrawString(FontManager.InGameFont, "OK", New Vector2(rec.X + rec.Width - FontManager.InGameFont.MeasureString("OK").X - 20, rec.Y + rec.Height - FontManager.InGameFont.MeasureString("OK").Y - 5), Color.White)
Core.SpriteBatch.DrawString(FontManager.InGameFont, Localization.GetString("global_ok", "OK"), New Vector2(rec.X + rec.Width - FontManager.InGameFont.MeasureString(Localization.GetString("global_ok", "OK")).X - 20, rec.Y + rec.Height - FontManager.InGameFont.MeasureString(Localization.GetString("global_ok", "OK")).Y - 5), Color.White)
End If
End If
End Sub
@ -89,31 +89,49 @@
If rec.Contains(MouseHandler.MousePosition) = False Then
If Controls.Accept(True, True, True) = True Then
If _chooseIndex = 0 Then
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5), AddressOf ChoosePokemon, Localization.GetString("battle_main_choose_pokemon"), False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5.ToString), AddressOf ChoosePokemon, Localization.GetString("battle_choose_pokemon"), False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
AddHandler selScreen.SelectedObject, AddressOf ChoosePokemonHandler
SoundManager.PlaySound("select")
Core.SetScreen(selScreen)
Else
SoundManager.PlaySound("select")
TempScreen.BattleQuery.Clear()
FinishOppSwitchAnimation(TempScreen)
FinishOppSwitchEffects(TempScreen)
Dim cq1 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, True, 16)
Dim cq2 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, False, 16)
cq2.PassThis = True
TempScreen.BattleQuery.AddRange({cq1, cq2})
TempScreen.HasSwitchedOwn = False
TempScreen.Battle.StartRound(TempScreen)
_ready = True
End If
End If
Else
If Controls.Accept(False, True, True) = True Then
If _chooseIndex = 0 Then
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5), AddressOf ChoosePokemon, Localization.GetString("battle_main_choose_pokemon"), False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5.ToString), AddressOf ChoosePokemon, Localization.GetString("battle_choose_pokemon"), False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
AddHandler selScreen.SelectedObject, AddressOf ChoosePokemonHandler
SoundManager.PlaySound("select")
Core.SetScreen(selScreen)
Else
SoundManager.PlaySound("select")
TempScreen.BattleQuery.Clear()
FinishOppSwitchAnimation(TempScreen)
FinishOppSwitchEffects(TempScreen)
Dim cq1 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, True, 16)
Dim cq2 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, False, 16)
cq2.PassThis = True
TempScreen.BattleQuery.AddRange({cq1, cq2})
TempScreen.HasSwitchedOwn = False
TempScreen.Battle.StartRound(TempScreen)
_ready = True
End If
End If
If Controls.Accept(True, False, False) Then
If New Rectangle(Core.windowSize.Width - 213, Core.windowSize.Height - 438, 80, 50).Contains(MouseHandler.MousePosition) Then
_chooseIndex = 0
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5), AddressOf ChoosePokemon, Localization.GetString("battle_main_choose_pokemon"), False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
Dim selScreen = New PartyScreen(Core.CurrentScreen, Item.GetItemByID(5.ToString), AddressOf ChoosePokemon, Localization.GetString("battle_choose_pokemon"), False) With {.Mode = Screens.UI.ISelectionScreen.ScreenMode.Selection, .CanExit = True}
AddHandler selScreen.SelectedObject, AddressOf ChoosePokemonHandler
SoundManager.PlaySound("select")
Core.SetScreen(selScreen)
@ -121,12 +139,30 @@
If New Rectangle(Core.windowSize.Width - 213, Core.windowSize.Height - 378, 80, 50).Contains(MouseHandler.MousePosition) Then
_chooseIndex = 1
SoundManager.PlaySound("select")
TempScreen.BattleQuery.Clear()
FinishOppSwitchAnimation(TempScreen)
FinishOppSwitchEffects(TempScreen)
Dim cq1 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, True, 16)
Dim cq2 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, False, 16)
cq2.PassThis = True
TempScreen.BattleQuery.AddRange({cq1, cq2})
TempScreen.HasSwitchedOwn = False
TempScreen.Battle.StartRound(TempScreen)
_ready = True
End If
End If
End If
End If
If Controls.Dismiss(True, True, True) = True Then
SoundManager.PlaySound("select")
TempScreen.BattleQuery.Clear()
FinishOppSwitchAnimation(TempScreen)
FinishOppSwitchEffects(TempScreen)
Dim cq1 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, True, 16)
Dim cq2 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, False, 16)
cq2.PassThis = True
TempScreen.BattleQuery.AddRange({cq1, cq2})
TempScreen.HasSwitchedOwn = False
TempScreen.Battle.StartRound(TempScreen)
_ready = True
End If
End Sub
@ -157,36 +193,50 @@
Private Sub ChoosePokemon(ByVal PokeIndex As Integer)
Dim Pokemon As Pokemon = Core.Player.Pokemons(PokeIndex)
If PokeIndex = TempScreen.OwnPokemonIndex Then
Screen.TextBox.Show(Pokemon.GetDisplayName() & " is already~in battle!", {}, True, False)
Screen.TextBox.Show(Pokemon.GetDisplayName() & " " & Localization.GetString("battle_switch_already_in_battle", "is already~in battle!"), {}, True, False)
Else
If Pokemon.IsEgg() = False Then
If Pokemon.Status <> P3D.Pokemon.StatusProblems.Fainted Then
If BattleCalculation.CanSwitch(TempScreen, True) = False Then
Screen.TextBox.Show("Cannot switch out.", {}, True, False)
Screen.TextBox.Show(Localization.GetString("battle_cannot_switch", "Cannot switch out."), {}, True, False)
Else
Dim TempQuery = TempScreen.BattleQuery.ToArray
If TempScreen.OwnPokemonIndex <> PokeIndex Then
TempScreen.ParticipatedPokemon.Clear()
TempScreen.ParticipatedPokemon.Add(PokeIndex)
If TempScreen.IsRemoteBattle = True And TempScreen.IsHost = False Then
TempScreen.OppFaint = False
TempScreen.OwnStatistics.Switches += 1
TempScreen.BattleQuery.Clear()
TempScreen.Battle.SwitchOutOwn(TempScreen, PokeIndex, TempScreen.BattleQuery.Count)
TempScreen.BattleQuery.Reverse()
TempScreen.BattleQuery.AddRange(TempQuery)
FinishOppSwitchAnimation(TempScreen)
TempScreen.Battle.SwitchOutOwn(TempScreen, PokeIndex, -1)
FinishOppSwitchEffects(TempScreen)
Dim cq1 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, True, 16)
Dim cq2 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, False, 16)
cq2.PassThis = True
TempScreen.BattleQuery.AddRange({cq1, cq2})
TempScreen.HasSwitchedOwn = True
TempScreen.Battle.StartRound(TempScreen)
Else
TempScreen.BattleQuery.Clear()
TempScreen.Battle.SwitchOutOwn(TempScreen, PokeIndex, TempScreen.BattleQuery.Count)
TempScreen.BattleQuery.Reverse()
TempScreen.BattleQuery.AddRange(TempQuery)
FinishOppSwitchAnimation(TempScreen)
TempScreen.Battle.SwitchOutOwn(TempScreen, PokeIndex, -1)
FinishOppSwitchEffects(TempScreen)
Dim cq1 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, True, 16)
Dim cq2 As ScreenFadeQueryObject = New ScreenFadeQueryObject(ScreenFadeQueryObject.FadeTypes.Vertical, Color.Black, False, 16)
cq2.PassThis = True
TempScreen.BattleQuery.AddRange({cq1, cq2})
TempScreen.HasSwitchedOwn = True
TempScreen.Battle.StartRound(TempScreen)
End If
Me._ready = True
End If
End If
Else
Screen.TextBox.Show(Pokemon.GetDisplayName() & " is fainted!", {}, True, False)
Screen.TextBox.Show(Pokemon.GetDisplayName() & " " & Localization.GetString("battle_switch_fainted", "is fainted!"), {}, True, False)
End If
Else
Screen.TextBox.Show("Cannot switch in~the egg!", {}, True, False)
Screen.TextBox.Show(Localization.GetString("battle_switch_egg", "Cannot switch in~the egg!"), {}, True, False)
End If
End If
End Sub
@ -197,11 +247,152 @@
MyBase.New(QueryTypes.SwitchPokemon)
Me.TempScreen = BattleScreen
TransformText(BattleScreen.Trainer.Name & " " & Localization.GetString("battle_main_trainer_sent_out_3") & " " & NewPokemon.GetDisplayName() & Localization.GetString("battle_main_trainer_sent_out_4"))
TransformText(BattleScreen.Trainer.Name & " " & Localization.GetString("battle_trainer_about_to_send_out_1") & " " & NewPokemon.GetDisplayName() & Localization.GetString("battle_trainer_about_to_send_out_2"))
End Sub
Dim delay As Single = 2.0F
Public Sub FinishOppSwitchAnimation(BattleScreen As BattleScreen)
BattleScreen.OppPokemonNPC.Position.Y = 0 + BattleScreen.BattleMapOffset.Y
BattleScreen.Battle.ChangeCameraAngle(1, False, BattleScreen)
Dim oppModel As String = BattleScreen.GetModelName(False)
If oppModel = "" Then
BattleScreen.BattleQuery.Add(New ToggleEntityQueryObject(True, ToggleEntityQueryObject.BattleEntities.OppPokemon, PokemonForms.GetOverworldSpriteName(BattleScreen.OppPokemon), -1, -1, 0, 1))
Else
BattleScreen.BattleQuery.Add(New ToggleEntityQueryObject(False, oppModel, -1, -1, 1, 0))
End If
BattleScreen.BattleQuery.Add(New ToggleEntityQueryObject(True, ToggleEntityQueryObject.BattleEntities.OppPokemon, 1, -1, -1, -1, -1))
BattleScreen.BattleQuery.Add(New TextQueryObject(BattleScreen.Trainer.Name & ": ""Go, " & BattleScreen.OppPokemon.GetDisplayName() & "!"""))
Dim BallThrow As AnimationQueryObject = New AnimationQueryObject(BattleScreen.OppPokemonNPC, False)
If Core.Player.ShowBattleAnimations <> 0 AndAlso BattleScreen.IsPVPBattle = False Then
' Ball is thrown
BallThrow.AnimationMove(Nothing, False, 0, 0.5, 0, 0.5, False, False, 0, 0,,,, 3)
BallThrow.AnimationPlaySound("Battle\Pokeball\Throw", 0, 0)
Dim BallThrowEntity = BallThrow.SpawnEntity(New Vector3(2, -0.15, 0), BattleScreen.OppPokemon.CatchBall.Texture, New Vector3(0.3F), 1.0F)
BallThrow.AnimationMove(BallThrowEntity, True, 0, 0.35, 0, 0.1, False, True, 0F, 0.5F,, 0.3, 0.025F)
' Ball opens
BallThrow.AnimationPlaySound("Battle\Pokeball\Open", 3, 0)
Dim SmokeSpawned As Integer = 0
Do
Dim SmokePosition = New Vector3(0, 0.35, 0)
Dim SmokeDestination = New Vector3(CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10), CSng(Random.Next(-10, 10) / 10))
Dim SmokeTexture As Texture2D = TextureManager.GetTexture("Textures\Battle\Smoke")
Dim SmokeScale = New Vector3(CSng(Random.Next(2, 6) / 10))
Dim SmokeSpeed = CSng(Random.Next(1, 3) / 20.0F)
Dim SmokeEntity = BallThrow.SpawnEntity(SmokePosition, SmokeTexture, SmokeScale, 1, 3)
BallThrow.AnimationMove(SmokeEntity, True, SmokeDestination.X, SmokeDestination.Y, SmokeDestination.Z, SmokeSpeed, False, False, 3.0F, 0.0F)
Threading.Interlocked.Increment(SmokeSpawned)
Loop While SmokeSpawned <= 38
End If
If Core.Player.ShowBattleAnimations <> 0 AndAlso BattleScreen.IsPVPBattle = False Then
' Pokemon appears
BallThrow.AnimationFade(Nothing, False, 1, True, 1, 3, 0)
BallThrow.AnimationPlaySound(CStr(BattleScreen.OppPokemon.Number), 4, 0,, True)
' Pokémon falls down
BallThrow.AnimationMove(Nothing, False, 0, -0.5F, 0, 0.05F, False, False, 5, 0)
Else
' Pokemon appears
BallThrow.AnimationFade(Nothing, False, 1, True, 1, 0, 0)
BallThrow.AnimationPlaySound(CStr(BattleScreen.OppPokemon.Number), 0, 0,, True)
End If
BattleScreen.BattleQuery.Add(BallThrow)
End Sub
Public Sub FinishOppSwitchEffects(BattleScreen As BattleScreen)
With BattleScreen
Dim p As Pokemon = .OppPokemon
Dim op As Pokemon = .OwnPokemon
Dim spikeAffected As Boolean = True
Dim rockAffected As Boolean = True
spikeAffected = BattleScreen.FieldEffects.IsGrounded(False, BattleScreen)
If spikeAffected = True Then
If .FieldEffects.OwnSpikes > 0 And p.Ability.Name.ToLower() <> "magic guard" Then
Dim spikeDamage As Double = 1D
Select Case .FieldEffects.OwnSpikes
Case 1
spikeDamage = (p.MaxHP / 100) * 12.5D
Case 2
spikeDamage = (p.MaxHP / 100) * 16.7D
Case 3
spikeDamage = (p.MaxHP / 100) * 25D
End Select
BattleScreen.Battle.ReduceHP(CInt(spikeDamage), False, True, BattleScreen, "The Spikes hurt " & p.GetDisplayName() & "!", "spikes")
End If
End If
'Sticky Web
If spikeAffected = True Then
If .FieldEffects.OwnStickyWeb > 0 Then
BattleScreen.Battle.LowerStat(False, False, BattleScreen, "Speed", 1, "The opposing pokemon was caught in a Sticky Web!", "stickyweb")
End If
End If
If spikeAffected = True Then
If .FieldEffects.OwnToxicSpikes > 0 And p.Status = Pokemon.StatusProblems.None And p.Type1.Type <> Element.Types.Poison And p.Type2.Type <> Element.Types.Poison Then
Select Case .FieldEffects.OwnToxicSpikes
Case 1
BattleScreen.Battle.InflictPoison(False, True, BattleScreen, False, "The Toxic Spikes hurt " & p.GetDisplayName() & "!", "toxicspikes")
Case 2
BattleScreen.Battle.InflictPoison(False, True, BattleScreen, True, "The Toxic Spikes hurt " & p.GetDisplayName() & "!", "toxicspikes")
End Select
End If
If .FieldEffects.OwnToxicSpikes > 0 Then
If p.Type1.Type = Element.Types.Poison Or p.Type2.Type = Element.Types.Poison Then
.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & " removed the Toxic Spikes!"))
.FieldEffects.OwnToxicSpikes = 0
End If
End If
End If
If rockAffected = True Then
If .FieldEffects.OwnStealthRock > 0 And p.Ability.Name.ToLower() <> "magic guard" Then
Dim rocksDamage As Double = 1D
Dim effectiveness As Single = BattleCalculation.ReverseTypeEffectiveness(Element.GetElementMultiplier(New Element(Element.Types.Rock), p.Type1)) * BattleCalculation.ReverseTypeEffectiveness(Element.GetElementMultiplier(New Element(Element.Types.Rock), p.Type2))
Select Case effectiveness
Case 0.25F
rocksDamage = (p.MaxHP / 100) * 3.125D
Case 0.5F
rocksDamage = (p.MaxHP / 100) * 6.25D
Case 1.0F
rocksDamage = (p.MaxHP / 100) * 12.5D
Case 2.0F
rocksDamage = (p.MaxHP / 100) * 25D
Case 4.0F
rocksDamage = (p.MaxHP / 100) * 50D
End Select
BattleScreen.Battle.ReduceHP(CInt(rocksDamage), False, True, BattleScreen, "The Stealth Rocks hurt " & p.GetDisplayName() & "!", "stealthrocks")
End If
End If
BattleScreen.Battle.TriggerAbilityEffect(BattleScreen, False)
BattleScreen.Battle.TriggerItemEffect(BattleScreen, False)
If .OppPokemon.Status = Pokemon.StatusProblems.Sleep Then
.FieldEffects.OppSleepTurns = Core.Random.Next(1, 4)
End If
If BattleScreen.FieldEffects.OppHealingWish = True Then
BattleScreen.FieldEffects.OppHealingWish = False
If .OppPokemon.HP < .OppPokemon.MaxHP Or .OppPokemon.Status <> Pokemon.StatusProblems.None Then
BattleScreen.Battle.GainHP(.OppPokemon.MaxHP - .OppPokemon.HP, False, False, BattleScreen, "The Healing Wish came true for " & .OppPokemon.GetDisplayName() & "!", "move:healingwish")
BattleScreen.Battle.CureStatusProblem(False, False, BattleScreen, "", "move:healingwish")
End If
End If
End With
End Sub
Public Overrides Sub Update(BV2Screen As BattleScreen)
If TextReady = False Then
UpdateText()

@ -29,6 +29,7 @@
Me._text = Me._text.Replace("~", " ")
Me._text = Me._text.Replace("<player.name>", Core.Player.Name)
Me._text = Me._text.Replace("<playername>", Core.Player.Name)
Me._text = Me._text.Replace("<rival.name>", Core.Player.RivalName)
Me._text = Me._text.Replace("<rivalname>", Core.Player.RivalName)
Me._text = Me._text.Replace("[POKE]", "Poké")
@ -58,9 +59,11 @@
Me._textIndex = Me._text.Length
End If
Else
If Controls.Accept(True, True) = True Then
SoundManager.PlaySound("select")
Me._ready = True
If CurrentScreen.Identification <> Screen.Identifications.PauseScreen AndAlso CurrentScreen.Identification <> Screen.Identifications.ChatScreen Then
If Controls.Accept(True, True) = True Then
SoundManager.PlaySound("select")
Me._ready = True
End If
End If
End If
End Sub
@ -77,11 +80,11 @@
If GamePad.GetState(PlayerIndex.One).IsConnected = True And Core.GameOptions.GamePadEnabled = True And BV2Screen.IsCurrentScreen() = True Then
Dim d As New Dictionary(Of Buttons, String)
d.Add(Buttons.A, "OK")
d.Add(Buttons.A, Localization.GetString("global_ok", "OK"))
BV2Screen.DrawGamePadControls(d, New Vector2(rec.X + rec.Width - 100, rec.Y + rec.Height - 40))
Else
If TextReady = True Then
Core.SpriteBatch.DrawString(FontManager.TextFont, "OK", New Vector2(rec.X + rec.Width - (FontManager.TextFont.MeasureString("OK").X * 2.0F) - 20, rec.Y + rec.Height - (FontManager.TextFont.MeasureString("OK").Y * 2.0F) - 5), Color.White, 0.0F, Vector2.Zero, 2.0F, SpriteEffects.None, 0.0F)
Core.SpriteBatch.DrawString(FontManager.TextFont, Localization.GetString("global_ok", "OK"), New Vector2(rec.X + rec.Width - (FontManager.TextFont.MeasureString(Localization.GetString("global_ok", "OK")).X * 2.0F) - 20, rec.Y + rec.Height - (FontManager.TextFont.MeasureString(Localization.GetString("global_ok", "OK")).Y * 2.0F) - 5), Color.White, 0.0F, Vector2.Zero, 2.0F, SpriteEffects.None, 0.0F)
End If
End If
End Sub

@ -79,16 +79,9 @@
Public Overrides Sub Update(BV2Screen As BattleScreen)
If changedIDs = False Then
changedIDs = True
If Me.ownModelID > -1 Then
BV2Screen.OwnPokemonModel.ID = ownModelID
End If
If Me.ownNPCID > -1 Then
BV2Screen.OwnPokemonNPC.ID = ownNPCID
End If
If Me.oppModelID > -1 Then
BV2Screen.OppPokemonModel.ID = oppModelID
End If
If Me.oppNPCID > -1 Then
BV2Screen.OppPokemonNPC.ID = oppNPCID
End If
@ -98,37 +91,36 @@
Case 0
Select Case Me._entity
Case BattleEntities.OwnPokemon
If BV2Screen.OwnPokemonNPC.ID = 1 Then
BV2Screen.OwnPokemonNPC.Visible = GetVisible(BV2Screen.OwnPokemonNPC.Visible)
BV2Screen.OwnPokemonModel.Visible = False
Else
BV2Screen.OwnPokemonModel.Visible = GetVisible(BV2Screen.OwnPokemonModel.Visible)
BV2Screen.OwnPokemonNPC.Visible = False
End If
BV2Screen.OwnPokemonNPC.Visible = GetVisible(BV2Screen.OwnPokemonNPC.Visible)
Case BattleEntities.OppPokemon
If BV2Screen.OppPokemonNPC.ID = 1 Then
BV2Screen.OppPokemonNPC.Visible = GetVisible(BV2Screen.OppPokemonNPC.Visible)
BV2Screen.OppPokemonModel.Visible = False
Else
BV2Screen.OppPokemonModel.Visible = GetVisible(BV2Screen.OppPokemonModel.Visible)
BV2Screen.OppPokemonNPC.Visible = False
End If
BV2Screen.OppPokemonNPC.Visible = GetVisible(BV2Screen.OppPokemonNPC.Visible)
End Select
Case 1
Select Case Me._entity
Case BattleEntities.OwnPokemon
BV2Screen.OwnPokemonNPC.ModelPath = ""
BV2Screen.OwnPokemonNPC.Model = Nothing
BV2Screen.OwnPokemonNPC.Scale = New Vector3(1)
BV2Screen.OwnPokemonNPC.SetupSprite(_newTexture, "", False)
Case BattleEntities.OppPokemon
BV2Screen.OppPokemonNPC.ModelPath = ""
BV2Screen.OppPokemonNPC.Model = Nothing
BV2Screen.OppPokemonNPC.Scale = New Vector3(1)
BV2Screen.OppPokemonNPC.SetupSprite(_newTexture, "", False)
End Select
Case 2
Select Case Me._entity
Case BattleEntities.OwnPokemon
BV2Screen.OwnPokemonModel.ModelPath = _newTexture
BV2Screen.OwnPokemonModel.Model = ModelManager.GetModel(BV2Screen.OwnPokemonModel.ModelPath)
BV2Screen.OwnPokemonNPC.Scale = New Vector3(BV2Screen.OwnPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE * GameModeManager.PokeModelScale
BV2Screen.OwnPokemonNPC.Rotation = NPC.GetRotationFromInteger(BV2Screen.OwnPokemonNPC.faceRotation) + GameModeManager.PokeModelRotation
BV2Screen.OwnPokemonNPC.ModelPath = _newTexture
BV2Screen.OwnPokemonNPC.Model = ModelManager.GetModel(BV2Screen.OwnPokemonNPC.ModelPath)
Case BattleEntities.OppPokemon
BV2Screen.OppPokemonModel.ModelPath = _newTexture
BV2Screen.OppPokemonModel.Model = ModelManager.GetModel(BV2Screen.OppPokemonModel.ModelPath)
BV2Screen.OppPokemonNPC.Scale = New Vector3(BV2Screen.OppPokemon.GetModelProperties().Item1) * ModelManager.MODELSCALE * GameModeManager.PokeModelScale
BV2Screen.OppPokemonNPC.Rotation = NPC.GetRotationFromInteger(BV2Screen.OppPokemonNPC.faceRotation) + GameModeManager.PokeModelRotation
BV2Screen.OppPokemonNPC.ModelPath = _newTexture
BV2Screen.OppPokemonNPC.Model = ModelManager.GetModel(BV2Screen.OppPokemonNPC.ModelPath)
End Select
End Select
_done = True

@ -10,7 +10,9 @@
End Sub
Public Overrides Sub Update(BV2Screen As BattleScreen)
BattleScreen.ReceivedInput = ""
If BattleScreen.FirstRound = False Then
BattleScreen.ReceivedInput = ""
End If
BV2Screen.SentHostData = False
BattleScreen.ReceivedQuery = ""
BV2Screen.SentInput = False

@ -1,17 +1,19 @@
Namespace BattleSystem
Imports P3D.BattleSystem.Battle
Namespace BattleSystem
Public Class TrainerAI
'Trainer AI Levels:---------------------------------------------------------------------------------------------------------------------
'Normal Trainers: 0-20 (0 being not very smart trainers like Bugcatchers, 20 being Cooltrainers, get higher levels when rematches occur)
'(Johto) Gym Leaders: 10-40 (10 for Falkner, 40 for Clair)
'(Kanto) Gym Leaders: All 60
'Elite 4: 60
'Lance: 100
'Elder Li: 10
'Rival: 40
'Team Rocket Grunts: 5
'Team Rocket Admins: 20
'Normal Trainers: 0-1 (0 being not very smart trainers like Bugcatchers, 1 being Cooltrainers, get higher levels when rematches occur)
'(Johto) Gym Leaders: 0-2 (0 for Falkner, 2 for Clair)
'(Kanto) Gym Leaders: All 2
'Elite 4: 2
'Lance: 2
'Elder Li: 0
'Rival: 2
'Team Rocket Grunts: 0
'Team Rocket Admins: 1
Public Shared Function GetAIMove(ByVal BattleScreen As BattleScreen, ByVal OwnStep As Battle.RoundConst) As Battle.RoundConst
Dim p As Pokemon = BattleScreen.OppPokemon
@ -101,28 +103,56 @@
' - use never-miss attack when own accuracy is low/opp evasion is high
'-------------------------------------AI BEGIN------------------------------------------------------------------------------------'
'-------------------------------------Encore Move if an encore is in effect-------------------------------------------------------'
If BattleScreen.FieldEffects.OppEncore > 0 Then
Dim attackIndex As Integer = -1
For a = 0 To p.Attacks.Count - 1
If p.Attacks(a).ID = BattleScreen.FieldEffects.OppEncoreMove.ID Then
attackIndex = a
End If
Next
If attackIndex <> -1 AndAlso p.Attacks(attackIndex).CurrentPP > 0 Then
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = BattleScreen.FieldEffects.OppEncoreMove}
Else
BattleScreen.FieldEffects.OppEncoreMove = Nothing
BattleScreen.FieldEffects.OppEncore = 0
BattleScreen.BattleQuery.Add(New TextQueryObject(p.GetDisplayName() & "'s encore stopped."))
End If
End If
'-------------------------------------Random move depending on difficulty---------------------------------------------------------'
'Only applies if trainer has an AI level below 20:
If BattleScreen.Trainer.AILevel < 20 Then
If Core.Player.DifficultyMode = 0 Then
'Chance of 35% that the trainer is using a random move:
If Core.Random.Next(0, 100) < 35 Then
Return ProduceOppStep(m, Core.Random.Next(0, m.Count))
End If
ElseIf Core.Player.DifficultyMode = 1 Then
'Chance of 18% that the trainer is using a random move:
If Core.Random.Next(0, 100) < 18 Then
Return ProduceOppStep(m, Core.Random.Next(0, m.Count))
'Only applies if trainer has an AI level of 0:
If BattleScreen.Trainer.AILevel <= 0 Then
Dim AvailableAttacks As List(Of Integer) = New List(Of Integer)
For i = 0 To m.Count - 1
AvailableAttacks.Add(i)
Next
Dim OppAttackChoice As Integer = Core.Random.Next(0, AvailableAttacks.Count)
Dim Ready As Boolean = False
While Ready = False
If m(OppAttackChoice) Is BattleScreen.FieldEffects.OppTormentMove OrElse m(OppAttackChoice).Disabled > 0 OrElse BattleScreen.FieldEffects.OppTaunt > 0 AndAlso BattleScreen.OppPokemon.Attacks(OppAttackChoice).Category = Attack.Categories.Status Then
AvailableAttacks.Remove(OppAttackChoice)
If AvailableAttacks.Count > 0 Then
OppAttackChoice = AvailableAttacks(Core.Random.Next(0, AvailableAttacks.Count))
Else
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = Attack.GetAttackByID(165)}
End If
Else
Ready = True
End If
End While
'Chance of 35% that the trainer is using a random move:
If Core.Random.Next(0, 100) < 35 Then
Return ProduceOppStep(m, OppAttackChoice)
End If
End If
'-------------------------------------Switching-----------------------------------------------------------------------------------'
'Only applies if trainer has an AI level above or equal 40:
If BattleScreen.Trainer.AILevel >= 40 Then
'Only applies if trainer has an AI level above or equal to 2:
If BattleScreen.Trainer.AILevel >= 2 Then
If BattleCalculation.CanSwitch(BattleScreen, False) = True Then
If BattleScreen.Trainer.Pokemons.Count > 0 Then
Dim living As Integer = 0
@ -347,13 +377,17 @@
'-------------------------------------Moves---------------------------------------------------------------------------------------'
'If own pokemon is asleep, try to use Sleep Talk (100%)
If p.Status = Pokemon.StatusProblems.Sleep And BattleScreen.FieldEffects.OppSleepTurns > 1 And HasMove(m, 214) = True Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 214))
If p.Status = Pokemon.StatusProblems.Sleep And BattleScreen.FieldEffects.OppSleepTurns > 1 And HasMove(m, 214) = True AndAlso m(IDtoMoveIndex(m, 214)).Disabled = 0 AndAlso m(IDtoMoveIndex(m, 214)) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 214)).Category <> Attack.Categories.Status Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 214))
End If
End If
'If own pokemon is asleep, try to use Snore (100%)
If p.Status = Pokemon.StatusProblems.Sleep And BattleScreen.FieldEffects.OppSleepTurns > 1 And HasMove(m, 173) = True Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 173))
If p.Status = Pokemon.StatusProblems.Sleep And BattleScreen.FieldEffects.OppSleepTurns > 1 And HasMove(m, 173) = True AndAlso m(IDtoMoveIndex(m, 173)).Disabled = 0 AndAlso m(IDtoMoveIndex(m, 173)) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 173)).Category <> Attack.Categories.Status Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 173))
End If
End If
'If own pokemon is frozen and has a move to thraw out -> use that move
@ -365,7 +399,7 @@
End If
'Fake Out if first turn -> try to inflict flinch (100%)
If HasMove(m, 252) = True Then
If HasMove(m, 252) = True AndAlso m(IDtoMoveIndex(m, 252)).Disabled = 0 AndAlso m(IDtoMoveIndex(m, 252)) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If op.Ability.Name.ToLower() <> "inner focus" Then
Dim turns As Integer = BattleScreen.FieldEffects.OppPokemonTurns
If turns = 0 Then
@ -386,7 +420,7 @@
'use attacking move if speed is higher than opp speed and opponent has low health (<= 30%) (75%)
If p.Speed > op.Speed And op.HP <= CInt((op.MaxHP / 100) * 30) Then
Dim chosenMove As Integer = GetAttackingMove(BattleScreen, m)
Dim chosenMove As Integer = MoveAI(m, Attack.AIField.Damage)
If chosenMove > -1 Then
If CheckForTypeIneffectiveness(BattleScreen, m, chosenMove) = True Then
Return ProduceOppStep(m, chosenMove)
@ -518,9 +552,11 @@
'try to set up leech seed (75%)
If op.IsType(Element.Types.Grass) = False Then
If BattleScreen.FieldEffects.OwnLeechSeed = 0 Then
If HasMove(m, 73) = True Then
If RPercent(75) = True Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 73))
If HasMove(m, 73) = True AndAlso m(IDtoMoveIndex(m, 73)).Disabled = 0 AndAlso m(IDtoMoveIndex(m, 73)) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 75)).Category <> Attack.Categories.Status Then
If RPercent(75) = True Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 73))
End If
End If
End If
End If
@ -528,9 +564,11 @@
'try to use FocusEnergy (50%)
If BattleScreen.FieldEffects.OppFocusEnergy = 0 Then
If HasMove(m, 116) = True Then
If RPercent(50) = True Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 116))
If HasMove(m, 116) = True AndAlso m(IDtoMoveIndex(m, 116)).Disabled = 0 AndAlso m(IDtoMoveIndex(m, 116)) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 116)).Category <> Attack.Categories.Status Then
If RPercent(50) = True Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 116))
End If
End If
End If
End If
@ -622,21 +660,31 @@
'Use LightScreen/Reflect (75%):
If RPercent(75) = True Then
If HasMove(m, 113) = True And op.SpAttack > op.Attack And BattleScreen.FieldEffects.OppLightScreen = 0 Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 113))
If HasMove(m, 113) = True And op.SpAttack > op.Attack And BattleScreen.FieldEffects.OppLightScreen = 0 AndAlso m(IDtoMoveIndex(m, 113)).Disabled = 0 AndAlso m(IDtoMoveIndex(m, 113)) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 113)).Category <> Attack.Categories.Status Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 113))
End If
End If
If HasMove(m, 115) = True And op.Attack > op.SpAttack And BattleScreen.FieldEffects.OppReflect = 0 Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 115))
If HasMove(m, 115) = True And op.Attack > op.SpAttack And BattleScreen.FieldEffects.OppReflect = 0 AndAlso m(IDtoMoveIndex(m, 115)).Disabled = 0 AndAlso m(IDtoMoveIndex(m, 115)) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 115)).Category <> Attack.Categories.Status Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 115))
End If
End If
End If
'Special Moveset combos:
' - Defense Curl + Rollout
If HasMove(m, 205) = True And HasMove(m, 111) = True Then
If BattleScreen.FieldEffects.OppDefenseCurl = 0 Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 111))
If BattleScreen.FieldEffects.OppDefenseCurl = 0 AndAlso m(IDtoMoveIndex(m, 111)).Disabled = 0 AndAlso m(IDtoMoveIndex(m, 111)) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 111)).Category <> Attack.Categories.Status Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 111))
End If
Else
Return ProduceOppStep(m, IDtoMoveIndex(m, 205))
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 205)).Category <> Attack.Categories.Status Then
If m(IDtoMoveIndex(m, 205)).Disabled = 0 Then
Return ProduceOppStep(m, IDtoMoveIndex(m, 205))
End If
End If
End If
End If
@ -644,8 +692,10 @@
Dim attackDic As New Dictionary(Of Integer, Integer)
For i = 0 To m.Count - 1
If MoveHasAIField(m(i), Attack.AIField.Damage) = True Then
attackDic.Add(i, 0)
If MoveHasAIField(m(i), Attack.AIField.Damage) = True AndAlso m(i).Disabled = 0 AndAlso m(i) IsNot BattleScreen.FieldEffects.OppTormentMove Then
If BattleScreen.FieldEffects.OppTaunt = 0 OrElse m(IDtoMoveIndex(m, 214)).Category <> Attack.Categories.Status Then
attackDic.Add(i, 0)
End If
End If
Next
'If has more than 0 attacking moves:
@ -792,8 +842,31 @@
Return ProduceOppStep(m, chosenAttackMove)
End If
'catch crash: return random move:
Return ProduceOppStep(m, Core.Random.Next(0, m.Count))
'if no attacking moves, return random move:
If BattleScreen.Trainer.AILevel >= 0 Then
Dim AvailableAttacks As List(Of Integer) = New List(Of Integer)
For i = 0 To m.Count - 1
AvailableAttacks.Add(i)
Next
Dim OppAttackChoice As Integer = Core.Random.Next(0, AvailableAttacks.Count)
Dim Ready As Boolean = False
While Ready = False
If m(OppAttackChoice) Is BattleScreen.FieldEffects.OppTormentMove OrElse m(OppAttackChoice).Disabled > 0 OrElse BattleScreen.FieldEffects.OppTaunt > 0 AndAlso BattleScreen.OppPokemon.Attacks(OppAttackChoice).Category = Attack.Categories.Status Then
AvailableAttacks.Remove(OppAttackChoice)
If AvailableAttacks.Count > 0 Then
OppAttackChoice = AvailableAttacks(Core.Random.Next(0, AvailableAttacks.Count))
Else
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = Attack.GetAttackByID(165)}
End If
Else
Ready = True
End If
End While
Return ProduceOppStep(m, OppAttackChoice)
End If
'catch crash: return struggle
Return New RoundConst() With {.StepType = RoundConst.StepTypes.Move, .Argument = Attack.GetAttackByID(165)}
End Function
Private Shared Function HasOtherAttackingMoveThanExplosion(ByVal m As List(Of Attack), ByVal leaveOutIndex As Integer) As Boolean
@ -835,9 +908,17 @@
Private Shared Function MoveAI(ByVal m As List(Of Attack), ByVal AIType As Attack.AIField) As Integer
Dim validMoves As New List(Of Integer)
Dim _battleScreen As Screen = Core.CurrentScreen
While _battleScreen.Identification <> Screen.Identifications.BattleScreen
_battleScreen = _battleScreen.PreScreen
End While
For i = 0 To m.Count - 1
If m(i).AIField1 = AIType Or m(i).AIField2 = AIType Or m(i).AIField3 = AIType Then
validMoves.Add(i)
If m(i).Disabled = 0 AndAlso m(i) IsNot CType(_battleScreen, BattleScreen).FieldEffects.OppTormentMove Then
If CType(_battleScreen, BattleScreen).FieldEffects.OppTaunt = 0 OrElse m(i).Category <> Attack.Categories.Status Then
If m(i).AIField1 = AIType Or m(i).AIField2 = AIType Or m(i).AIField3 = AIType Then
validMoves.Add(i)
End If
End If
End If
Next

@ -23,7 +23,7 @@ Public Class Trainer
Public VSImageOrigin As String = "VSIntro"
Public VSImagePosition As Vector2 = New Vector2(0, 0)
Public VSImageSize As Size = New Size(61, 54)
Public VSImageSize As Size = New Size(64, 64)
Public BarImagePosition As Vector2 = New Vector2(0, 0)
Public OutroMessage As String = "TRAINER_DEFAULT_MESSAGE"
@ -140,7 +140,7 @@ Public Class Trainer
isDoubleTrainerValid += 1
End If
Case "money"
Me.Money = CInt(ScriptCommander.Parse(value).ToString())
Me.Money = CInt(ScriptConversion.ToInteger(ScriptCommander.Parse(value).ToString()))
Case "intromessage"
Me.IntroMessage = ScriptCommander.Parse(value).ToString()
Case "outromessage"
@ -179,7 +179,7 @@ Public Class Trainer
If value <> "" Then
Dim itemData() As String = ScriptCommander.Parse(value).ToString().Split(CChar(","))
For Each ItemID As String In itemData
Items.Add(Item.GetItemByID(CInt(ItemID)))
Items.Add(Item.GetItemByID(ItemID.ToString))
Next
End If
Case "gender"
@ -212,23 +212,30 @@ Public Class Trainer
If PokeData.StartsWith("{") = True And PokeData.EndsWith("}") = True Then
Dim p As Pokemon = Pokemon.GetPokemonByData(PokeData)
If Core.Player.DifficultyMode > 0 Then
Dim level As Integer = p.Level
Dim level As Integer = p.Level
Dim addLevel As Integer = 0
If Core.Player.DifficultyMode = 1 Then
addLevel = CInt(Math.Ceiling(level / 10))
ElseIf Core.Player.DifficultyMode = 2 Then
addLevel = CInt(Math.Ceiling(level / 5))
End If
While level + addLevel > p.Level
p.LevelUp(False)
p.Experience = p.NeedExperience(p.Level)
End While
p.HP = p.MaxHP
Dim addLevel As Integer = 0
If Core.Player.DifficultyMode = 0 Then
addLevel = CInt(Math.Ceiling(level * CSng(GameModeManager.GetGameRuleValue("LevelMultiplier", "1.0").InsertDecSeparator) - level))
ElseIf Core.Player.DifficultyMode = 1 Then
addLevel = CInt(Math.Ceiling(level * CSng(GameModeManager.GetGameRuleValue("LevelMultiplier", "1.1").InsertDecSeparator) - level))
ElseIf Core.Player.DifficultyMode = 2 Then
addLevel = CInt(Math.Ceiling(level * CSng(GameModeManager.GetGameRuleValue("LevelMultiplier", "1.2").InsertDecSeparator) - level))
End If
If level + addLevel > CInt(GameModeManager.GetGameRuleValue("MaxLevel", "100")) Then
addLevel = CInt(GameModeManager.GetGameRuleValue("MaxLevel", "100")) - level
End If
If addLevel <= 0 Then
addLevel = 0
End If
While level + addLevel > p.Level
p.LevelUp(False)
p.Experience = p.NeedExperience(p.Level)
End While
p.HP = p.MaxHP
Pokemons.Add(p)
Else
Dim firstPart As String = ""
@ -263,7 +270,7 @@ Public Class Trainer
Dim PK As String = ScriptCommander.Parse(firstPart).ToString()
Dim Level As Integer = ScriptConversion.ToInteger(ScriptCommander.Parse(secondPart))
Dim ID As Integer = CInt(PK.Split(CChar("_"))(0))
Dim ID As Integer = ScriptConversion.ToInteger(PK.Split(CChar("_"))(0))
Dim AD As String = ""
If PK.Contains(CChar("_")) Then
@ -271,11 +278,20 @@ Public Class Trainer
End If
Dim addLevel As Integer = 0
If Core.Player.DifficultyMode = 1 Then
addLevel = CInt(Math.Ceiling(Level / 10))
If Core.Player.DifficultyMode = 0 Then
addLevel = CInt(Math.Ceiling(Level * CSng(GameModeManager.GetGameRuleValue("LevelMultiplier", "1.0").InsertDecSeparator) - Level))
ElseIf Core.Player.DifficultyMode = 1 Then
addLevel = CInt(Math.Ceiling(Level * CSng(GameModeManager.GetGameRuleValue("LevelMultiplier", "1.1").InsertDecSeparator) - Level))
ElseIf Core.Player.DifficultyMode = 2 Then
addLevel = CInt(Math.Ceiling(Level / 5))
addLevel = CInt(Math.Ceiling(Level * CSng(GameModeManager.GetGameRuleValue("LevelMultiplier", "1.2").InsertDecSeparator) - Level))
End If
If Level + addLevel > CInt(GameModeManager.GetGameRuleValue("MaxLevel", "100")) Then
addLevel = CInt(GameModeManager.GetGameRuleValue("MaxLevel", "100")) - Level
End If
If addLevel <= 0 Then
addLevel = 0
End If
Level += addLevel
Dim maxLevel As Integer = CInt(GameModeManager.GetGameRuleValue("MaxLevel", "100"))
@ -332,25 +348,25 @@ Public Class Trainer
Me.VSImagePosition = New Vector2(0, 0)
Case "orange", "1"
Me.VSImagePosition = New Vector2(1, 0)
Case "green", "2"
Case "lightgreen", "2"
Me.VSImagePosition = New Vector2(0, 1)
Case "3"
Case "gray", "3"
Me.VSImagePosition = New Vector2(1, 1)
Case "4"
Case "violet", "4"
Me.VSImagePosition = New Vector2(0, 2)
Case "5"
Case "green", "5"
Me.VSImagePosition = New Vector2(1, 2)
Case "6"
Case "yellow", "6"
Me.VSImagePosition = New Vector2(0, 3)
Case "7"
Case "brown", "7"
Me.VSImagePosition = New Vector2(1, 3)
Case "8"
Case "lightblue", "8"
Me.VSImagePosition = New Vector2(0, 4)
Case "9"
Case "lightgray", "9"
Me.VSImagePosition = New Vector2(1, 4)
Case "red", "10"
Me.VSImagePosition = New Vector2(0, 5)
Case "11"
Case "empty", "11"
Me.VSImagePosition = New Vector2(1, 5)
Case "battlefrontier"
Me.VSImagePosition = New Vector2(0, 0)
@ -392,7 +408,7 @@ Public Class Trainer
Me.BarImagePosition = New Vector2(1, 4)
Case "red", "10"
Me.BarImagePosition = New Vector2(0, 5)
Case "11"
Case "empty", "11"
Me.BarImagePosition = New Vector2(1, 5)
Case Else
If StringHelper.IsNumeric(barType) = True Then
@ -491,4 +507,4 @@ Public Class Trainer
Return i
End Function
End Class
End Class

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More