Commit Graph

4740 Commits

Author SHA1 Message Date
Guangcong Luo
0d05feb41b Migrate to optional chaining and TypeScript 3.7
This is something I probably wouldn't have rushed nearly as much,
except I have a serious use-case coming up; specifically

```js
foo = document.querySelector('foo')?.bar;
```

in a class property.

`document.querySelector('foo') && document.querySelector('foo').bar`
is incredibly inefficient here, but TypeScript doesn't consider
`(document.querySelector('foo') || {}).bar` to be valid because `{}`
doesn't have the `.bar` property. Creating a temporary variable
would have been a huge mess because this was a class property
initializer.

In hindsight, `(document.querySelector('foo')! || {}).bar` would
probably have worked, but too late now.
2019-10-13 01:28:36 +11:00
Alumn
f32f63a3f0 Fix grassy terrain battle text (#1381) 2019-10-11 04:02:11 +11:00
Guangcong Luo
1599a38205 Support /savereplay silent
See 41e7c57442
2019-10-10 08:57:33 -04:00
urkerab
9dc5e34ea7 Display spread move target even during fast forward (#1382) 2019-10-10 10:11:23 +11:00
whales
04c879de38 Report fake success in replays properly 2019-10-09 01:37:18 +10:30
Guangcong Luo
0203245e0e Fix Necrozma-DW/DM move list 2019-10-07 01:56:26 +11:00
Kirk Scheibelhut
e3a7f53752 Use hex colors instead of HSL for name colors (#1380) 2019-10-05 16:42:06 +10:00
asgdf
17e4d9ff3f Fix broken avatar change messsage when using avatar numbers (#1379) 2019-10-02 02:53:48 +09:30
asgdf
0d0dc4f0bc Tooltips: Properly round displayed factors (#1378) 2019-09-30 01:44:37 +09:30
asgdf
f5de669d1e Fix battle joins in modchat not updating user list (#1377) 2019-09-29 23:11:58 +09:30
HoeenHero
1ad1150ac3 Support custom terrains being overwritten (#1376) 2019-09-28 12:31:05 +09:30
whales
a3c7813989 Stop prefixing battle names with a space (#1375) 2019-09-27 17:02:58 +09:30
whales
3efb099c56 Don't error out for ladder ranks with a long input name (#1374) 2019-09-27 13:46:22 +09:30
Kirk Scheibelhut
a614a4f2d9 Improve scaling BW sprites (#1372) 2019-09-19 12:59:28 +09:30
whales
45b93e43cb Don't steal focus from a textbox when updating user (#1373) 2019-09-16 20:23:54 +10:00
whales
e084c1d77e Clientside support for reporting a specific user (#1361) 2019-09-15 01:20:51 -07:00
Kirk Scheibelhut
5ba0790750 Import @pokemon-showdown/sets during build (#1368) 2019-09-13 02:38:00 -07:00
Kirk Scheibelhut
db6c938007 Standardize file/directory names in sprites/ (#1370)
#1369
2019-09-13 00:55:55 -07:00
Kirk Scheibelhut
d690fe8592 Remove unused configuration from travis.yml
These where required as setup for a UI testing framework which has
long since been removed.
2019-09-11 20:03:59 -07:00
whales
fbfc85c337 Fix name display in PM windows (#1366) 2019-09-09 03:01:08 -05:00
asgdf
a5a06e5729 Tooltips: Properly prevent duplicate ability display (#1362) 2019-09-08 23:34:48 -05:00
whales
a7b09818e9 Fix name in trainer card (#1365)
[02:42:41] peach: name never starts with a rank symbol on initialization
[02:42:50] peach: and it never starts with a rank symbol in userdetails
[02:43:10] peach: so i think you can just delete the line i linked as well as L2467 and be fine
2019-09-08 23:03:05 -05:00
Volco
d88249497a Add fail message for healing at full HP (#1364) 2019-09-08 15:13:36 -05:00
asgdf
7772360b58 Don't Baton Pass Laser Focus clientside (#1363) 2019-09-08 15:56:16 +04:00
Guangcong Luo
9e06e72a35 Add support for watching battles
Playing battles is, of course, a lot harder, but watching them
is at least implemented now.
2019-09-06 02:46:54 -05:00
Guangcong Luo
6d415e2cd7 Fix trainercard alignment
Clicking on a user with a very large trainercard (generally, a bot in
a lot of rooms) would often push the trainercard offscreen even if it
fit, or push the trainercard to unscrollable areas.

With this change, the trainercard will no longer go offscreen unless
it doesn't fit, and if it doesn't fit, it will always be scrollable.
2019-09-06 00:42:26 -05:00
Guangcong Luo
10833a6c28 Support more xydex sprites in teambuilder 2019-09-04 18:47:11 -05:00
Guangcong Luo
52973f240a Prefer <button name="cmd"> buttons
This adds a new global button type (`cmd`). It works like `send`,
except it's processed for client commands, as if a user had typed it
into the commandline and pressed Enter.

This should make passing event handlers into Preact significantly less
common, and save a lot of duplicate code, and also save needing
`preventDefault` and `stopImmediatePropagation` everywhere.

`cmd`, `send`, and `joinRoom` combined should also allow buttons sent
from the server even more flexibility in what they can do.

Maybe at some point we'd even want a client `chat-commands` file.
2019-09-04 18:47:11 -05:00
Ben Davies
29bab1bfdf Fix SockJS when using the desktop client (#1360)
* Patch SockJS v1.4.0 to work with nw.js

* Document how to upgrade SockJS in UPGRADING-SOCKJS.md
2019-09-04 14:54:03 -05:00
Guangcong Luo
6b66a0322e Support making and receiving challenges
Actually playing the game that opens when you accept a challenge is,
of course, yet to be implemented.
2019-09-04 02:02:32 -05:00
Guangcong Luo
64b95e23cc Support text entry history 2019-09-04 02:02:32 -05:00
Guangcong Luo
e4f11da6ee Support |noinit|namerequired
Also:

- Support `/challenge [username]`

- Show an error when trying to challenge a chatroom

- Make the Main Menu scrollable

- Improve comment-documentation of PS.leftRoom etc
2019-09-04 02:02:32 -05:00
Guangcong Luo
548911b0c3 Fix obscure crash 2019-09-04 01:03:30 -04:00
Guangcong Luo
5100732a79 Fix LGPE sprites 2019-09-04 01:02:52 -04:00
Ben Davies
02eaeecf46 Implement connection timeouts (#1358)
* Use SockJS' timeout config option

This sets timeouts on connections to 5 minutes, matching the server's
heartbeat interval to close sockets that shouldn't be open anymore.

* Update SockJS client to v1.4.0

This fixes an issue where SockJS would parse the entire HTTP response
received as JSON, not the response's body alone.
2019-09-03 21:31:24 -05:00
LegoFigure11
f168f512e8 Add Teambuilder support for Battle Spot Special 17 (#1359) 2019-09-03 21:29:13 -05:00
Kirk Scheibelhut
3e1e76ac4d Change away usernames to be colorblind-friendly
'#888' still is light enough to work in dark mode, and apparently
the darker grey improves the contrast.
2019-09-03 16:54:01 -07:00
Guangcong Luo
6a3b62cdc9 Support Challenge menu
This adds support for a Challenge menu to the new Preact client.

- New: Support for "Controls", allowing Preact to render JSX at the
  bottom of chat scrollback - intended for challenge menus and battle
  controls in PS Mobile.

- New: <<pm-[userid]>> and <<challenge-[userid]>> links

- New: Support for client-side commands: /j, /chall, etc

- New: PMs have a user list

Actually challenging people isn't supported yet.
2019-08-31 00:04:45 -05:00
HoeenHero
849bc15834 Support custom weathers appearing on client (#1356) 2019-08-27 17:00:03 -07:00
Alexander B
b17bc0743f Runner-ups -> Runners-up (#1355) 2019-08-26 10:30:50 -07:00
Guangcong Luo
56490e3e84 Fix bgm not working 2019-08-25 16:22:38 -04:00
Guangcong Luo
260dcb0f2f Add better error message for spread move crash 2019-08-25 05:37:14 -04:00
Guangcong Luo
f1a560f90a Refactor background music
- Fixes bugs relating to multiple battles with background music going
  simultaneously

- Battles now instantly progress to Team Preview; no need for
  `.fastForwardTo(0)`

- Battles no longer play music before `|start|` or `|teampreview|`. This
  makes it possible for roomgames not to have music.

We now use a modern technique of "figure out what the music state should
be from battle state, then move toward it", instead of "directly figure
out what music state changes result from what battle state changes".

This is the trick I learned from React, and it makes the code
significantly simpler and more maintainable.
2019-08-24 15:12:52 -04:00
Guangcong Luo
898280c5e5 Improve format/team selector
This introduces a new TeamForm component, which can be used to choose
formats and teams.
2019-08-22 11:08:43 -07:00
Guangcong Luo
a736a4fa50 Fix replay URLs again 2019-08-21 11:17:16 -04:00
TheJetOU
586e8585bf Fix replays ordering (#1353) 2019-08-17 16:16:51 +02:00
Kirk Scheibelhut
bc72f40841 Fix missing sigils in replays.lib.php 2019-08-17 11:03:02 +02:00
kanmingxu00
9863615c69 Support folders in the battle team selector (#1343) 2019-08-14 00:56:26 -07:00
whales
dea589abb7 Show timestamp in nonotify PMs (#1351) 2019-08-13 17:09:09 +02:00
Kirk Scheibelhut
db3d655648 Unify username and format replay search internals (#1346) 2019-08-12 04:26:48 -07:00