RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
LMSLobby.java
1package com.osroyale.content.lms.lobby;
2
3import com.osroyale.content.lms.LMSGame;
4import com.osroyale.content.lms.loadouts.LMSLoadout;
5import com.osroyale.game.world.entity.combat.weapon.WeaponInterface;
6import com.osroyale.game.world.entity.mob.UpdateFlag;
7import com.osroyale.game.world.entity.mob.player.Player;
8import com.osroyale.game.world.entity.skill.Skill;
9import com.osroyale.game.world.items.Item;
10import com.osroyale.game.world.position.Position;
11import com.osroyale.util.Utility;
12
13import java.util.ArrayList;
14import java.util.List;
15
47
48public class LMSLobby {
49
50 public static boolean DEVELOPMENT_MODE = false;
51
55 public static Position finish = new Position(3141, 3634, 0);
56
60 public static List<Player> lobbyMembers = new ArrayList<>();
61
65 public static int requiredPlayers = DEVELOPMENT_MODE ? 2 : 4;
66
70 public static int maxPlayers = 24;
71
76
77 public static String getGameTypeName() {
78 return currentGameType.getClass().getSimpleName();
79 }
80
85 public static void joinLobby(Player player) {
86
87 if(lobbyMembers.size() >= maxPlayers) {
88 //TODO: Make a dialogue
89 return;
90 }
91
92 if (LMSGame.isActivePlayer(player)) return;
93
94 if (player.pet != null) {
95 //TODO: Make a dialogue
96 return;
97 }
98
99 if(!lobbyMembers.contains(player))
100 lobbyMembers.add(player);
101
102 player.move(player.getPosition().north());
103
105 player.message("A game is currently on-going and should end shortly.");
106
107 //Handles making a copy of the spellbook
108 player.spellbook_copy = player.spellbook;
109
110 //Handles making a copy of the inventory
111 player.inventory_copy.set(player.inventory.getItems().clone());
112 player.inventory.clear();
113 player.inventory.refresh();
114
115 //Handles making a copy of the equipment
116 player.equipment_copy.set(player.equipment.getItems().clone());
117 player.equipment.clear();
118 player.equipment.refresh();
119 player.equipment.updateAnimation();
120 WeaponInterface.execute(player, player.equipment.getWeapon());
121
122 //Handles making a copy of the rune pouch
123 player.runePouch_copy.clear(false);
124 for(Item rune : player.runePouch.runes)
125 player.runePouch_copy.runes.add(new Item(rune.getId(), rune.getAmount()));
126 player.runePouch.clear(false);
127
128 //Handles making a copy of the skills
129 for(int index = 0; index < player.skills.getSkills().length; index++) {
130 Skill skill = player.skills_copy.get(index);
131 Skill real_skill = player.skills.get(index);
132
133 skill.setLevel(real_skill.getLevel());
134 skill.setMaxLevel(real_skill.getMaxLevel());
135 skill.setExperience(skill.getExperienceForLevel(real_skill.getLevel()));
136 }
137 player.skills_copy.experienceCounter = player.skills.experienceCounter;
138
139 player.updateFlags.add(UpdateFlag.APPEARANCE);
140 }
141
146 public static void leaveLobby(Player player, boolean logout) {
147 lobbyMembers.remove(player);
148
149 //Sets back the players old inventory
150 player.inventory.set(player.inventory_copy.getItems().clone());
151 player.inventory_copy.clear();
152 player.inventory.refresh();
153
154 //Sets back the players old equipment
155 player.equipment.set(player.equipment_copy.getItems().clone());
156 player.equipment_copy.clear();
157 player.equipment.refresh();
158 player.equipment.updateAnimation();
159 WeaponInterface.execute(player, player.equipment.getWeapon());
160
161 //Sets back the old rune pouch
162 player.runePouch.clear();
163 for(Item rune : player.runePouch_copy.runes)
164 player.runePouch.runes.add(new Item(rune.getId(), rune.getAmount()));
165 player.runePouch_copy.clear(false);
166
167 player.updateFlags.add(UpdateFlag.APPEARANCE);
168
169 if(logout)
170 player.move(new Position(finish.getX() + Utility.random(1), finish.getY() + Utility.random(3), 0));
171 else {
172 int diffX = player.getPosition().getX() >= 3142 ? 3142 - player.getPosition().getX() : 3141 - player.getPosition().getX();
173 int diffY = 3638 - player.getPosition().getY();
174 player.move(player.getPosition().copy().transform(diffX, diffY, 0));
175 }
176 }
177}
static boolean isActivePlayer(Player player)
Definition LMSGame.java:188
static void leaveLobby(Player player, boolean logout)
static void joinLobby(Player player)
Definition LMSLobby.java:85
void move(Position position)
Definition Mob.java:377
Position transform(int diffX, int diffY, int diffZ)