Telekinetic grab and stuff (#508)

* tidy up

* Tidy up check for space

* Telekinetic base

* Don't allow player to pickup statue

* Tidy up item pickup

* fixup, statue spawn

* Update telekinetic grab

* 2nd option for guardian statue

* handle telegrab on statue

* Allow picking up global drops with telekinetic grab

* Check if player can see/reach item

* Update PickupItem.java

* Allow pasting into chatbox

* camera stuff

* fixup clipboard stuff

* Update PlayerAssistant.java

* Update Commands.java

* Add mazes initial

* Tidy up the clipboard pasting

* Update mazes

* Calculate new position of statue

* fixup telegrab

* More tidy up, remove constant running of container

* more tidy up..

* Handle moving statues

* remove the statue from global drops

* Update MagicOnFloorItems.java

* Show telekinetic interface

* Make public accessable

* Only show items to player that are on the same height level

* Moving statues around, Spawning

* Reward exp, points, law runes

* Show points, mazes completed

* Add comment

* Add observable statue (still needs work)

* Fixup where camera focuses

* Load items when player changes level

* Graveyard base

* Add a couple more checks

* Update Player.java

* Update Commands.java

* Make sure statue is visible when player appears at maze

* [Mage training arena] Graveyard

* Update MageTrainingArena.java

* Update MageTrainingArena.java

* Update ItemHandler.java
This commit is contained in:
Danial
2021-10-05 16:01:16 +13:00
committed by GitHub
parent c526aa5f4d
commit 2d8ae82086
22 changed files with 719 additions and 193 deletions
@@ -769,6 +769,9 @@ public class PlayerAssistant {
player.npcIndex = 0;
player.playerIndex = 0;
player.faceUpdate(0);
if (player.heightLevel != height) {
player.refresh = true;
}
player.teleHeight = height;
player.startAnimation(714);
player.teleTimer = 11;
@@ -833,6 +836,9 @@ public class PlayerAssistant {
player.npcIndex = 0;
player.playerIndex = 0;
player.faceUpdate(0);
if (player.heightLevel != height) {
player.refresh = true;
}
player.teleHeight = height;
player.startAnimation(714);
player.teleTimer = 11;
@@ -2302,8 +2308,25 @@ public class PlayerAssistant {
*/
public void sendCameraCutscene(int x, int y, int height, int speed, int angle) {
player.getOutStream().createFrame(177);
player.getOutStream().writeByte(x / 64); //
player.getOutStream().writeByte(y / 64); //
player.getOutStream().writeByte(x); // divided by 64 apparently allows real world coords
player.getOutStream().writeByte(y); // divided by 64 apparently allows real world coords
player.getOutStream().writeWord(height); //
player.getOutStream().writeByte(speed); //
player.getOutStream().writeByte(angle);
}
/**
* anchors the camera to a specific view (for cutscenes)
* @param x The X Coordinate (Within the player's loaded area)
* @param y The Y Coordinate (Within the player's loaded area)
* @param height The Height of Camera (not relative to the game world height)
* @param speed The Camera Speed (Speed at which the camera turns to where it should point?)
* @param angle The Camera Angle
*/
public void sendCameraCutscene2(int x, int y, int height, int speed, int angle) {
player.getOutStream().createFrame(166);
player.getOutStream().writeByte(x); //
player.getOutStream().writeByte(y); //
player.getOutStream().writeWord(height); //
player.getOutStream().writeByte(speed); //
player.getOutStream().writeByte(angle);