1
Fork 0
mirror of https://github.com/Quackster/Havana.git synced 2025-07-02 04:37:47 +00:00

Fix looks/figures for public room bots in flash client

This commit is contained in:
Quackster 2024-10-19 11:48:32 +10:00
parent 6ad584ce84
commit e65dfb8dca
4 changed files with 53 additions and 4 deletions

View file

@ -36,6 +36,7 @@ public class BotDao {
Integer.parseInt(resultSet.getString("start_look").split(",")[0]),
Integer.parseInt(resultSet.getString("start_look").split(",")[1]),
resultSet.getString("figure"),
resultSet.getString("figure_flash"),
resultSet.getString("walkspace"),
resultSet.getString("speech"),
resultSet.getString("response"),

View file

@ -13,6 +13,7 @@ public class BotData {
private String mission;
private Position startPosition;
private String figure;
private String figureFlash;
private List<Position> walkspace;
private List<BotSpeech> speeches;
@ -32,12 +33,13 @@ public class BotData {
this.drinks = new ArrayList<>();
}
public BotData(String name, String mission, int x, int y, int headRotation, int bodyRotation, String figure, String walkspaceData,
public BotData(String name, String mission, int x, int y, int headRotation, int bodyRotation, String figure, String figureFlash, String walkspaceData,
String speech, String responses, String unrecognisedResponses, String drinks) {
this.name = name;
this.mission = mission;
this.startPosition = new Position(x, y, 0, headRotation, bodyRotation);
this.figure = figure;
this.figureFlash = figureFlash;
this.walkspace = new ArrayList<>();
for (String positionDatas : walkspaceData.split(" ")) {
@ -87,6 +89,10 @@ public class BotData {
return figure;
}
public String getFigureFlash() {
return figureFlash;
}
public List<Position> getWalkspace() {
return walkspace;
}

View file

@ -1,11 +1,12 @@
package org.alexdev.havana.messages.outgoing.rooms.user;
import org.alexdev.havana.game.bot.Bot;
import org.alexdev.havana.game.entity.Entity;
import org.alexdev.havana.game.entity.EntityState;
import org.alexdev.havana.game.entity.EntityType;
import org.alexdev.havana.game.player.Player;
import org.alexdev.havana.game.player.statistics.PlayerStatistic;
import org.alexdev.havana.messages.types.MessageComposer;
import org.alexdev.havana.messages.types.PlayerMessageComposer;
import org.alexdev.havana.server.netty.streams.NettyResponse;
import org.alexdev.havana.util.StringUtil;
@ -13,7 +14,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentLinkedQueue;
public class USER_OBJECTS extends MessageComposer {
public class USER_OBJECTS extends PlayerMessageComposer {
private List<EntityState> states;
public USER_OBJECTS(ConcurrentLinkedQueue<Entity> entities) {
@ -52,7 +53,17 @@ public class USER_OBJECTS extends MessageComposer {
response.writeInt(states.getEntityId());
response.writeString(states.getDetails().getName());
response.writeString(states.getDetails().getMotto() + " ");
response.writeString(states.getDetails().getFigure());
if (states.getEntityType() == EntityType.BOT) {
if (this.getPlayer().getNetwork().isFlashConnection()) {
response.writeString(((Bot) states.getEntity()).getBotData().getFigureFlash());
} else {
response.writeString(states.getDetails().getFigure());
}
}
else {
response.writeString(states.getDetails().getFigure());
}
response.writeInt(states.getInstanceId());
response.writeInt(states.getPosition().getX());
response.writeInt(states.getPosition().getY());

File diff suppressed because one or more lines are too long