/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package handling.farm.handler;
import client.MapleCharacterUtil;
import client.MapleClient;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;
import server.farm.MapleFarm;
import tools.data.LittleEndianAccessor;
import tools.packet.CField;
import tools.packet.FarmPacket;
/**
*
* @author Itzik
*/
public class FarmHandler {
public static void createFarm(LittleEndianAccessor slea, MapleClient c) {
String name = slea.readMapleAsciiString();
if (!MapleCharacterUtil.canCreateChar(name, false)) {
return;
}
MapleFarm farm = MapleFarm.getDefault(35549721, c, name);
farm.setLevel(1);
c.setFarm(farm);
c.getSession().write(FarmPacket.updateQuestInfo(1111, 1, "A1/Z/"));
//c.getSession().write(FarmPacket.updateFarmInfo(c, true));
//c.getSession().write(CField.getPacketFromHexString("68 03 19 72 1E 02 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 65 73 6D 69 66 61 72 6D 7A 7A 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00 00 0B 00 43 72 65 61 74 69 6E 67 2E 2E 2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 FF FF FF FF 00"));
c.getSession().write(FarmPacket.farmPacket4());
c.getSession().write(FarmPacket.updateQuestInfo(30000, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30003, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30007, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30011, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30015, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30019, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30023, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30027, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30045, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30050, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30055, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30060, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30065, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30070, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30076, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30080, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30081, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(30082, 0, "A1/"));
}
public static void completeQuest(LittleEndianAccessor slea, MapleClient c) {
int questId = slea.readInt();
if (questId == 1111) {
c.getSession().write(FarmPacket.updateQuestInfo(1111, 1, ""));
SimpleDateFormat sdfGMT = new SimpleDateFormat("yyyy-MM-dd-HH-mm");
sdfGMT.setTimeZone(TimeZone.getTimeZone("Canada/Pacific"));
String timeStr = sdfGMT.format(Calendar.getInstance().getTime()).replaceAll("-", "");
c.getSession().write(FarmPacket.updateQuestInfo(1111, 2, timeStr));
System.out.println(timeStr);
c.getSession().write(FarmPacket.alertQuest(1111, 0));
c.getSession().write(FarmPacket.updateQuestInfo(1112, 0, "A1/"));
c.getSession().write(FarmPacket.updateQuestInfo(1112, 1, "A1/Z/"));
}
}
public static void placeBuilding(LittleEndianAccessor slea, MapleClient c) {
int position = slea.readInt();
int itemId = slea.readInt();
slea.readByte(); //idk
if (itemId / 10000 < 112 || itemId / 10000 > 114) {
return;
}
if (position > (25 * 25) - 1) { //biggest farm 25x25
return;
}
int size = (itemId / 10000) % 10;
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if (!c.getFarm().checkSpace(size, position - j - i)) {
return;
}
}
}
//c.getFarm().getFarmInventory().updateItemQuantity(itemId, -1);
//c.getFarm().gainAestheticPoints(aesthetic); //rewarded from building
}
public static void harvest(LittleEndianAccessor slea, MapleClient c) {
slea.readInt(); //position
//c.getFarm().getFarmInventory().updateItemQuantity(oid, -1);
//c.getFarm().gainAestheticPoints(aesthetic); //rewarded from building
}
public static void buy(LittleEndianAccessor slea, MapleClient c) {
int itemId = slea.readInt();
//c.getFarm().getFarmInventory().gainWaru(-price);
//c.getFarm().getFarmInventory().updateItemQuantity(itemId, 1);
//c.getFarm().gainAestheticPoints(aesthetic); //rewarded from building
}
public static void useItem(LittleEndianAccessor slea, MapleClient c) {
int itemId = slea.readInt();
//c.getFarm().getFarmInventory().updateItemQuantity(itemId, -1);
//c.getFarm().gainAestheticPoints(aesthetic); //rewarded from building
}
public static void renameMonster(LittleEndianAccessor slea, MapleClient c) {
int monsterIndex = slea.readInt();
String name = slea.readMapleAsciiString();
//c.getFarm().getMonster(monsterIndex).setName(name);
c.getSession().write(FarmPacket.renameMonster(monsterIndex, name));
}
public static void nurtureMonster(LittleEndianAccessor slea, MapleClient c) {
int monsterIndex = slea.readInt();
}
public static void firstEntryReward(LittleEndianAccessor slea, MapleClient c) {
//give random waru consume item
c.getSession().write(FarmPacket.farmMessage("Find your reward for logging in today \r\nin your inventory."));
}
public static void checkQuestStatus(LittleEndianAccessor slea, MapleClient c) {
int farmId = slea.readInt();
//TODO code farm quests
if (c.getFarm().getName().equals("Creating...")) {
//c.getSession().write(FarmPacket.updateQuestInfo(1111, 1, "A1/Z/"));
}
}
}