mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-02-21 20:18:14 +07:00
Added horadric cube
Added horadric cube Added support for usable item spells
This commit is contained in:
parent
18c12515a3
commit
d05a3c6f3e
@ -2,6 +2,7 @@ package com.riiablo.codec.excel;
|
||||
|
||||
public class Misc extends Excel<Misc.Entry> {
|
||||
public static class Entry extends ItemEntry {
|
||||
@Column public int pSpell;
|
||||
@Column public int spelldesc;
|
||||
@Column public String spelldescstr;
|
||||
}
|
||||
|
100
core/src/com/riiablo/panel/CubePanel.java
Normal file
100
core/src/com/riiablo/panel/CubePanel.java
Normal file
@ -0,0 +1,100 @@
|
||||
package com.riiablo.panel;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetDescriptor;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.Touchable;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
|
||||
import com.badlogic.gdx.utils.Disposable;
|
||||
import com.riiablo.Riiablo;
|
||||
import com.riiablo.codec.DC6;
|
||||
import com.riiablo.codec.excel.Inventory;
|
||||
import com.riiablo.item.StoreLoc;
|
||||
import com.riiablo.loader.DC6Loader;
|
||||
import com.riiablo.screen.GameScreen;
|
||||
import com.riiablo.widget.Button;
|
||||
|
||||
public class CubePanel extends WidgetGroup implements Disposable {
|
||||
private static final String TAG = "CubePanel";
|
||||
|
||||
final AssetDescriptor<DC6> supertransmogrifierDescriptor = new AssetDescriptor<>("data\\global\\ui\\PANEL\\supertransmogrifier.dc6", DC6.class, DC6Loader.DC6Parameters.COMBINE);
|
||||
TextureRegion supertransmogrifier;
|
||||
|
||||
final AssetDescriptor<DC6> miniconvertDescriptor = new AssetDescriptor<>("data\\global\\ui\\PANEL\\miniconvert.DC6", DC6.class);
|
||||
Button btnTransmog;
|
||||
|
||||
final AssetDescriptor<DC6> buysellbtnDescriptor = new AssetDescriptor<>("data\\global\\ui\\PANEL\\buysellbtn.DC6", DC6.class);
|
||||
Button btnExit;
|
||||
|
||||
final GameScreen gameScreen;
|
||||
final Inventory.Entry inventory;
|
||||
|
||||
public CubePanel(GameScreen gameScreen) {
|
||||
this.gameScreen = gameScreen;
|
||||
|
||||
Riiablo.assets.load(supertransmogrifierDescriptor);
|
||||
Riiablo.assets.finishLoadingAsset(supertransmogrifierDescriptor);
|
||||
supertransmogrifier = Riiablo.assets.get(supertransmogrifierDescriptor).getTexture();
|
||||
setSize(supertransmogrifier.getRegionWidth(), supertransmogrifier.getRegionHeight());
|
||||
setTouchable(Touchable.enabled);
|
||||
setVisible(false);
|
||||
|
||||
btnExit = new Button(new Button.ButtonStyle() {{
|
||||
Riiablo.assets.load(buysellbtnDescriptor);
|
||||
Riiablo.assets.finishLoadingAsset(buysellbtnDescriptor);
|
||||
up = new TextureRegionDrawable(Riiablo.assets.get(buysellbtnDescriptor).getTexture(10));
|
||||
down = new TextureRegionDrawable(Riiablo.assets.get(buysellbtnDescriptor).getTexture(11));
|
||||
}});
|
||||
btnExit.setPosition(275, 15);
|
||||
btnExit.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
setVisible(false);
|
||||
}
|
||||
});
|
||||
addActor(btnExit);
|
||||
|
||||
btnTransmog = new Button(new Button.ButtonStyle() {{
|
||||
Riiablo.assets.load(miniconvertDescriptor);
|
||||
Riiablo.assets.finishLoadingAsset(miniconvertDescriptor);
|
||||
up = new TextureRegionDrawable(Riiablo.assets.get(miniconvertDescriptor).getTexture(0));
|
||||
down = new TextureRegionDrawable(Riiablo.assets.get(miniconvertDescriptor).getTexture(1));
|
||||
}});
|
||||
btnTransmog.setPosition(144, 139);
|
||||
btnTransmog.addListener(new ClickListener() {
|
||||
@Override
|
||||
public void clicked(InputEvent event, float x, float y) {
|
||||
//...
|
||||
}
|
||||
});
|
||||
addActor(btnTransmog);
|
||||
|
||||
inventory = Riiablo.files.inventory.get("Transmogrify Box Page 1");
|
||||
|
||||
ItemGrid grid = new ItemGrid(gameScreen, inventory);
|
||||
grid.populate(gameScreen.player.getStore(StoreLoc.CUBE));
|
||||
grid.setPosition(
|
||||
inventory.gridLeft - inventory.invLeft,
|
||||
getHeight() - inventory.gridTop - grid.getHeight());
|
||||
addActor(grid);
|
||||
|
||||
//setDebug(true, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
btnExit.dispose();
|
||||
Riiablo.assets.unload(supertransmogrifierDescriptor.fileName);
|
||||
Riiablo.assets.unload(miniconvertDescriptor.fileName);
|
||||
Riiablo.assets.unload(buysellbtnDescriptor.fileName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(Batch batch, float a) {
|
||||
batch.draw(supertransmogrifier, getX(), getY());
|
||||
super.draw(batch, a);
|
||||
}
|
||||
}
|
@ -16,6 +16,7 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.ObjectSet;
|
||||
|
||||
import com.riiablo.codec.excel.Misc;
|
||||
import com.riiablo.graphics.BlendMode;
|
||||
import com.riiablo.Riiablo;
|
||||
import com.riiablo.codec.excel.Inventory;
|
||||
@ -271,6 +272,14 @@ public class ItemGrid extends Group {
|
||||
ItemEntry entry = StoredItem.this.item.base;
|
||||
if (entry.useable) {
|
||||
Riiablo.audio.play(StoredItem.this.item.getUseSound(), true);
|
||||
if (entry instanceof Misc.Entry) {
|
||||
Misc.Entry misc = StoredItem.this.item.getBase();
|
||||
switch (misc.pSpell) {
|
||||
case 7:
|
||||
gameScreen.cubePanel.setVisible(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}/* else if (Riiablo.cursor.getItem() == null) {
|
||||
String[] BodyLocs = item.type.BodyLoc;
|
||||
for (String BodyLoc : BodyLocs) {
|
||||
|
@ -54,6 +54,7 @@ import com.riiablo.map.MapLoader;
|
||||
import com.riiablo.map.MapRenderer;
|
||||
import com.riiablo.panel.CharacterPanel;
|
||||
import com.riiablo.panel.ControlPanel;
|
||||
import com.riiablo.panel.CubePanel;
|
||||
import com.riiablo.panel.EscapePanel;
|
||||
import com.riiablo.panel.HirelingPanel;
|
||||
import com.riiablo.panel.InventoryPanel;
|
||||
@ -112,6 +113,7 @@ public class GameScreen extends ScreenAdapter implements LoadingScreen.Loadable
|
||||
public HirelingPanel hirelingPanel;
|
||||
public WaygatePanel waygatePanel;
|
||||
public QuestsPanel questsPanel;
|
||||
public CubePanel cubePanel;
|
||||
public SpellsQuickPanel spellsQuickPanelL;
|
||||
public SpellsQuickPanel spellsQuickPanelR;
|
||||
MappedKeyStateAdapter mappedKeyStateListener;
|
||||
@ -251,6 +253,9 @@ public class GameScreen extends ScreenAdapter implements LoadingScreen.Loadable
|
||||
stashPanel = new StashPanel(this);
|
||||
stashPanel.setPosition(0, stage.getHeight() - stashPanel.getHeight());
|
||||
|
||||
cubePanel = new CubePanel(this);
|
||||
cubePanel.setPosition(0, stage.getHeight() - cubePanel.getHeight());
|
||||
|
||||
waygatePanel = new WaygatePanel(this);
|
||||
waygatePanel.setPosition(0, stage.getHeight() - waygatePanel.getHeight());
|
||||
|
||||
@ -277,6 +282,7 @@ public class GameScreen extends ScreenAdapter implements LoadingScreen.Loadable
|
||||
stage.addActor(spellsPanel);
|
||||
stage.addActor(characterPanel);
|
||||
stage.addActor(stashPanel);
|
||||
stage.addActor(cubePanel);
|
||||
stage.addActor(waygatePanel);
|
||||
stage.addActor(questsPanel);
|
||||
stage.addActor(spellsQuickPanelL);
|
||||
@ -745,6 +751,7 @@ public class GameScreen extends ScreenAdapter implements LoadingScreen.Loadable
|
||||
spellsPanel.dispose();
|
||||
characterPanel.dispose();
|
||||
stashPanel.dispose();
|
||||
cubePanel.dispose();
|
||||
waygatePanel.dispose();
|
||||
questsPanel.dispose();
|
||||
if (mobilePanel != null) mobilePanel.dispose();
|
||||
|
Loading…
Reference in New Issue
Block a user