package ui; import java.awt.Point; import java.awt.event.ActionListener; import java.util.Arrays; import javax.swing.SwingUtilities; import com.javaxyq.core.Application; import com.javaxyq.core.DataStore; import com.javaxyq.core.GameCanvas; import com.javaxyq.core.SceneCanvas; import com.javaxyq.core.SpriteFactory; import com.javaxyq.data.ItemInstance; import com.javaxyq.event.ActionEvent; import com.javaxyq.event.PanelEvent; import com.javaxyq.event.PanelHandler; import com.javaxyq.model.ItemTypes; import com.javaxyq.model.PlayerVO; import com.javaxyq.ui.Button; import com.javaxyq.ui.Label; import com.javaxyq.ui.TextField; import com.javaxyq.util.MedicineItemComparator; import com.javaxyq.widget.Player; import com.javaxyq.widget.Sprite; public class mainwin extends PanelHandler implements ActionListener{ private Label sceneLabel; private Label coordinateLabel; private Label hpTrough ; private Label mpTrough ; private Label spTrough ; private Label expTrough ; private TextField chatInput; public void initial(PanelEvent evt) { super.initial(evt); System.out.println("initial��system.mainwin "); String charactorId = context.getPlayer().getCharacter(); Sprite sprite = SpriteFactory.loadSprite("wzife/photo/facesmall/"+charactorId+".tcp"); Button btnHeader = (Button) panel.findCompByName("btn_player_header"); btnHeader.init(sprite); coordinateLabel = (Label) panel.findCompByName("player_coordinate"); sceneLabel = (Label) panel.findCompByName("scene_name"); hpTrough = (Label) panel.findCompByName("player_hp"); mpTrough = (Label) panel.findCompByName("player_mp"); spTrough = (Label) panel.findCompByName("player_sp"); expTrough = (Label) panel.findCompByName("player_exp"); chatInput = (TextField) panel.findCompByName("chat_input"); chatInput.addActionListener(this); updateCoords(); setAutoUpdate(true); } public void dispose(PanelEvent evt) { System.out.println("dispose: ui.mainwin "); } public void update(PanelEvent evt) { if (context.getPlayer() == null) return; updateCoords(); Player player = context.getPlayer(); if(player == null)return; PlayerVO playerVO = player.getData(); int maxLen = 50; // player_hp int len = playerVO.getHp() * maxLen / playerVO.getMaxHp(); hpTrough.setSize(len, hpTrough.getHeight()); // player_mp len = playerVO.getMp() * maxLen / playerVO.getMaxMp(); mpTrough.setSize(len, mpTrough.getHeight()); // player_sp len = playerVO.getSp() * maxLen / 150; spTrough.setSize(len, spTrough.getHeight()); // player_exp len = (int) (playerVO.getExp() * maxLen / dataManager.getLevelExp(playerVO.getLevel())); expTrough.setSize(len, expTrough.getHeight()); // TODO summon״̬ // summon��Ѫ // summonħ�� // summon���� } /** * ������������ */ private void updateCoords() { GameCanvas canvas = context.getWindow().getCanvas(); if (canvas instanceof SceneCanvas) { SceneCanvas sceneCanvas = (SceneCanvas) canvas; Point pp = context.getPlayer().getSceneLocation(); String strCoordinate = "X:" + pp.x + " Y:" + pp.y; coordinateLabel.setText(strCoordinate); sceneLabel.setText(sceneCanvas.getSceneName()); } } /** * ����player_hp */ public void eke_player_hp(ActionEvent evt) { //�����ǰ��ս���򷵻� if(application.getState() == Application.STATE_BATTLE) { helper.prompt("[��ܰ��ʾ]ս���в����Զ�������ѪŶ��",3000); return; } Player player = context.getPlayer(); PlayerVO data = player.getData(); int reqHp = data.maxHp - data.hp;//��Ҫ�������Ѫ�� //���ҿ��Բ�����Ѫ��ҩƷ ItemInstance[] items = dataManager.findItems(player,ItemTypes.TYPE_MEDICINE_HP); Arrays.sort(items,new MedicineItemComparator(ItemTypes.TYPE_MEDICINE_HP)); for (int i = 0; i < items.length; i++) { ItemInstance item = items[i]; while(reqHp > 0 && item.getLevel() <3 && item.getAmount() > 0) { System.out.println("ʹ��һ��ҩƷ��"+item.getName()); application.getItemManager().useItem(player, item); reqHp = data.maxHp - data.hp; } if(reqHp == 0) { System.out.println("��Ѫ������ϣ�"); break; } } } /** * ����player_mpֵ * @param evt */ public void eke_player_mp(ActionEvent evt) { //�����ǰ��ս���򷵻� if(application.getState() == Application.STATE_BATTLE) { helper.prompt("[��ܰ��ʾ]ս���в����Զ����䷨��Ŷ��",3000); return; } Player player = context.getPlayer(); PlayerVO data = player.getData(); int reqMp = data.maxMp - data.mp;//��Ҫ�������Ѫ�� //���ҿ��Բ�����Ѫ��ҩƷ ItemInstance[] items = dataManager.findItems(player,ItemTypes.TYPE_MEDICINE_MP); Arrays.sort(items,new MedicineItemComparator(ItemTypes.TYPE_MEDICINE_MP)); for (int i = 0; i < items.length; i++) { ItemInstance item = items[i]; while(reqMp > 0 && item.getLevel() <3 && item.getAmount() > 0) { System.out.println("ʹ��һ��ҩƷ��"+item.getName()); application.getItemManager().useItem(player, item); reqMp = data.maxMp - data.mp; } if(reqMp == 0) { System.out.println("����������ϣ�"); break; } } } /** * ����summon��Ѫ */ public void eke_summon_hp(ActionEvent evt) { System.out.println("����summon��Ѫ"); } /** * ����summonħ��ֵ * @param evt */ public void eke_summoned_mp(ActionEvent evt) { System.out.println("����summonħ��"); } /** * ȫ���л� * @param evt */ public void fullscreen(ActionEvent evt) { //GameMain.fullScreen(); } public void world_map(ActionEvent evt) { helper.showHideDialog("world_map"); } public void scene_map(ActionEvent evt) { helper.showHideDialog("scene_map"); } public void summon_status(ActionEvent evt) { helper.showHideDialog("summon_status"); } public void player_status(ActionEvent evt) { helper.showHideDialog("player_status"); } /** * ������������ * @param evt */ public void chat(ActionEvent evt) { final TextField editor = (TextField) evt.getSource(); String text = editor.getText(); if(text !=null && text.length()>0) { context.getPlayer().say(text); } editor.setText(""); } public void attack(ActionEvent evt) { } public void open_item(ActionEvent evt) { helper.showHideDialog("item"); } public void giving(ActionEvent evt) { //helper.showDialog("giving"); } public void exchange(ActionEvent evt) { //helper.showDialog("exchange"); } public void team(ActionEvent evt) { } public void task_list(ActionEvent evt) { helper.showHideDialog("tasklist"); } /** * �򿪰��� * @param evt */ public void open_org(ActionEvent evt) { } /** * ��������� * @param evt */ public void quick_magic(ActionEvent evt) { } public void friend_list(ActionEvent evt) { } /** * ���ﶯ�� * @param evt */ public void open_motion(ActionEvent evt) { } /** * ϵͳ���� * @param evt */ public void system_setting(ActionEvent evt) { helper.showHideDialog("game_exit"); } /** * Ƶ��ѡ�� * @param evt */ public void change_channel(ActionEvent evt) { } @Override public void actionPerformed(java.awt.event.ActionEvent e) { chat(new ActionEvent(e.getSource(), "chat")); } }