Search in sources :

Example 71 with Unit

use of eidolons.entity.obj.unit.Unit in project Eidolons by IDemiurge.

the class Spawner method spawnDone.

protected void spawnDone() {
    // TODO selective??
    // getGame().getMetaMaster().getPartyManager().getParty().getMembers()
    List<Unit> unitsList = new ArrayList<>();
    unitsList.addAll(game.getUnits());
    getFacingAdjuster().adjustFacing(unitsList);
    final Integer cellsX = game.getDungeon().getCellsX();
    final Integer cellsY = game.getDungeon().getCellsY();
    GuiEventManager.trigger(SCREEN_LOADED, new BFDataCreatedEvent(cellsX, cellsY, game.getBfObjects()));
// WaitMaster.waitForInput(WAIT_OPERATIONS.DUNGEON_SCREEN_READY);
}
Also used : ArrayList(java.util.ArrayList) BFDataCreatedEvent(eidolons.libgdx.bf.BFDataCreatedEvent) Unit(eidolons.entity.obj.unit.Unit)

Example 72 with Unit

use of eidolons.entity.obj.unit.Unit in project Eidolons by IDemiurge.

the class Spawner method spawnPlayerParty.

private void spawnPlayerParty(Party party, String partyData) {
    DC_ObjInitializer.initializePartyPositions(partyData, party.getMembers());
    int i = 0;
    getPositioner().setMaxSpacePercentageTaken(MAX_SPACE_PERC_PARTY);
    Boolean last = null;
    for (Unit hero : party.getMembers()) {
        if (party.getPartyCoordinates() == null) {
            if (getGame().getGameMode() == GAME_MODES.ARENA || getGame().getGameMode() == GAME_MODES.ARENA_ARCADE) {
                hero.setFacing(FacingMaster.getPresetFacing(true));
            }
        // else
        // hero.setFacing(getPositioner().getPartyMemberFacing(hero.getCoordinates()));
        }
        hero.setOriginalOwner(game.getPlayer(true));
        i++;
        if (i == party.getMembers().size()) {
            last = true;
        }
        if (game.isDebugMode()) {
            TestMasterContent.addTestItems(hero.getType(), last);
        }
        last = false;
        if (!Launcher.isRunning()) {
            continue;
        }
        hero.setSpells(null);
        hero.initSpells(false);
        hero.fullReset(game);
    }
// game.getPlayer(true).setEmblem(party.getLeader().getEmblem().getImage());
}
Also used : Unit(eidolons.entity.obj.unit.Unit)

Example 73 with Unit

use of eidolons.entity.obj.unit.Unit in project Eidolons by IDemiurge.

the class ArenaSpawner method spawnWave.

private void spawnWave(List<ObjAtCoordinate> unitMap, Wave wave, boolean prespawnMode) {
    game.getLogManager().log("New encounter: " + wave.getName());
    if (unitMap == null) {
        getPositioner().setMaxSpacePercentageTaken(MAX_SPACE_PERC_CREEPS);
        wave.initUnitMap();
        unitMap = wave.getUnitMap();
    }
    try {
        getBattleMaster().getWaveAssembler().resetPositions(wave);
    } catch (Exception e) {
        main.system.ExceptionMaster.printStackTrace(e);
    }
    for (ObjAtCoordinate oac : unitMap) {
        Coordinates c = oac.getCoordinates();
        FACING_DIRECTION facing = getFacingAdjuster().getFacingForEnemy(c);
        boolean invalid = false;
        if (c == null) {
            invalid = true;
        } else if (c.isInvalid()) {
            invalid = true;
        } else if (game.getBattleField().getGrid().isCoordinateObstructed(c)) {
            invalid = true;
        }
        if (invalid) {
            c = Positioner.adjustCoordinate(c, facing);
        }
        ObjType type = oac.getType();
        Unit unit = (Unit) game.createUnit(type, c, wave.getOwner());
        UnitTrainingMaster.train(unit);
        unit.setFacing(facing);
        wave.addUnit(unit);
        game.fireEvent(new Event(STANDARD_EVENT_TYPE.UNIT_HAS_CHANGED_FACING, Ref.getSelfTargetingRefCopy(unit)));
    }
    if (!PartyHelper.checkMergeParty(wave)) {
        try {
            PartyHelper.addCreepParty(wave);
        } catch (Exception e) {
            main.system.ExceptionMaster.printStackTrace(e);
        }
    }
}
Also used : FACING_DIRECTION(main.game.bf.Coordinates.FACING_DIRECTION) ObjAtCoordinate(main.entity.type.ObjAtCoordinate) ObjType(main.entity.type.ObjType) Coordinates(main.game.bf.Coordinates) Event(main.game.logic.event.Event) Unit(eidolons.entity.obj.unit.Unit)

Example 74 with Unit

use of eidolons.entity.obj.unit.Unit in project Eidolons by IDemiurge.

the class GridPanel method updateOutlines.

public void updateOutlines() {
    viewMap.keySet().forEach(obj -> {
        if (!obj.isOverlaying())
            if (!obj.isMine())
                if (!obj.isWall()) {
                    OUTLINE_TYPE outline = obj.getOutlineType();
                    GridUnitView uv = (GridUnitView) viewMap.get(obj);
                    TextureRegion texture = null;
                    if (outline != null) {
                        String path = Eidolons.game.getVisionMaster().getVisibilityMaster().getImagePath(outline, obj);
                        if (obj instanceof Unit) {
                            main.system.auxiliary.log.LogMaster.log(1, obj + " has OUTLINE: " + path);
                        }
                        texture = TextureCache.getOrCreateR(path);
                        uv.setOutline(texture);
                    } else {
                        if (obj instanceof Unit) {
                            if (!obj.isOutsideCombat()) {
                                main.system.auxiliary.log.LogMaster.log(1, obj + " has NO OUTLINE: ");
                            }
                        }
                        uv.setOutline(null);
                    }
                }
    });
}
Also used : OUTLINE_TYPE(main.content.enums.rules.VisionEnums.OUTLINE_TYPE) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) Unit(eidolons.entity.obj.unit.Unit)

Example 75 with Unit

use of eidolons.entity.obj.unit.Unit in project Eidolons by IDemiurge.

the class GridPanel method onIngameEvent.

private EventCallback onIngameEvent() {
    return param -> {
        Event event = (Event) param.get();
        Ref ref = event.getRef();
        boolean caught = false;
        if (event.getType() == STANDARD_EVENT_TYPE.EFFECT_HAS_BEEN_APPLIED) {
            GuiEventManager.trigger(GuiEventType.EFFECT_APPLIED, event.getRef());
            caught = true;
        } else if (event.getType() == STANDARD_EVENT_TYPE.UNIT_HAS_CHANGED_FACING || event.getType() == STANDARD_EVENT_TYPE.UNIT_HAS_TURNED_CLOCKWISE || event.getType() == STANDARD_EVENT_TYPE.UNIT_HAS_TURNED_ANTICLOCKWISE) {
            BattleFieldObject hero = (BattleFieldObject) ref.getObj(KEYS.TARGET);
            // if (hero.isMainHero()) TODO this is an experiment (insane) feature...
            // if (hero.isMine()) {
            // turnField(event.getType());
            // }
            BaseView view = viewMap.get(hero);
            if (view != null && view instanceof GridUnitView) {
                GridUnitView unitView = ((GridUnitView) view);
                unitView.updateRotation(hero.getFacing().getDirection().getDegrees());
                // SoundController.getCustomEventSound(SOUND_EVENT.UNIT_TURNS, );
                if (hero instanceof Unit)
                    DC_SoundMaster.playTurnSound((Unit) hero);
            }
            caught = true;
        } else if (event.getType() == STANDARD_EVENT_TYPE.UNIT_HAS_FALLEN_UNCONSCIOUS) {
            GuiEventManager.trigger(UNIT_GREYED_OUT_ON, ref.getSourceObj());
        } else if (event.getType() == STANDARD_EVENT_TYPE.UNIT_HAS_RECOVERED_FROM_UNCONSCIOUSNESS) {
            GuiEventManager.trigger(UNIT_GREYED_OUT_OFF, ref.getSourceObj());
        } else if (event.getType() == STANDARD_EVENT_TYPE.UNIT_HAS_BEEN_KILLED) {
            GuiEventManager.trigger(UNIT_GREYED_OUT_OFF, ref.getSourceObj());
            if (!DeathAnim.isOn() || ref.isDebug()) {
                GuiEventManager.trigger(DESTROY_UNIT_MODEL, ref.getTargetObj());
            }
            caught = true;
        } else if (event.getType() == STANDARD_EVENT_TYPE.UNIT_BEING_MOVED) {
            if (// || AnimMaster.isAnimationOffFor(ref.getSourceObj(), viewMap.get(ref.getSourceObj())))
            !MoveAnimation.isOn())
                removeUnitView((BattleFieldObject) ref.getSourceObj());
            caught = true;
        } else if (event.getType() == STANDARD_EVENT_TYPE.UNIT_FINISHED_MOVING) {
            if (!MoveAnimation.isOn() || AnimMaster.isAnimationOffFor(ref.getSourceObj(), viewMap.get(ref.getSourceObj())))
                moveUnitView((BattleFieldObject) ref.getSourceObj());
            caught = true;
        } else if (event.getType().name().startsWith("PARAM_BEING_MODIFIED")) {
            caught = true;
        } else if (event.getType().name().startsWith("PROP_")) {
            caught = true;
        } else if (event.getType().name().startsWith("ABILITY_")) {
            caught = true;
        } else if (event.getType().name().startsWith("EFFECT_")) {
            caught = true;
        } else if (event.getType().name().startsWith("PARAM_MODIFIED")) {
            if (GuiEventManager.isParamEventAlwaysFired(event.getType().getArg())) {
                UnitView view = (UnitView) getViewMap().get(event.getRef().getSourceObj());
                if (view != null)
                    if (view.isVisible())
                        if (view.getHpBar() != null)
                            // if (view.getHpBar( ).getDataSource().canHpBarBeVisible())
                            view.resetHpBar(new ResourceSourceImpl((BattleFieldObject) event.getRef().getSourceObj()));
            }
            caught = true;
        }
        if (!caught) {
        /*      System.out.println("catch ingame event: " + event.getType() + " in " + event.getRef());
           */
        }
    };
}
Also used : StrPathBuilder(main.system.auxiliary.StrPathBuilder) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) LastSeenMaster(eidolons.game.battlecraft.logic.battlefield.vision.LastSeenMaster) GuiEventType(main.system.GuiEventType) MapMaster(main.system.auxiliary.data.MapMaster) Entrance(eidolons.game.module.dungeoncrawl.dungeon.Entrance) Label(com.badlogic.gdx.scenes.scene2d.ui.Label) DungeonScreen(eidolons.libgdx.screens.DungeonScreen) Ref(main.entity.Ref) Pair(org.apache.commons.lang3.tuple.Pair) Vector2(com.badlogic.gdx.math.Vector2) GdxMaster(eidolons.libgdx.GdxMaster) TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) OptionsMaster(eidolons.system.options.OptionsMaster) Image(com.badlogic.gdx.scenes.scene2d.ui.Image) HpBar(eidolons.libgdx.bf.overlays.HpBar) OUTLINE_TYPE(main.content.enums.rules.VisionEnums.OUTLINE_TYPE) MoveAnimation(eidolons.libgdx.anims.std.MoveAnimation) TextureManager(eidolons.libgdx.texture.TextureManager) DC_Obj(eidolons.entity.obj.DC_Obj) ActorMaster(eidolons.libgdx.anims.ActorMaster) Event(main.game.logic.event.Event) FadeOutAction(eidolons.libgdx.anims.actions.FadeOutAction) Align(com.badlogic.gdx.utils.Align) DC_Game(eidolons.game.core.game.DC_Game) BattleFieldObject(eidolons.entity.obj.BattleFieldObject) ShadowMap(eidolons.libgdx.bf.light.ShadowMap) HelpMaster(eidolons.system.text.HelpMaster) List(java.util.List) OutlineMaster(eidolons.game.battlecraft.logic.battlefield.vision.OutlineMaster) Keys(com.badlogic.gdx.Input.Keys) Coordinates(main.game.bf.Coordinates) WallMap(eidolons.libgdx.bf.overlays.WallMap) STANDARD_EVENT_TYPE(main.game.logic.event.Event.STANDARD_EVENT_TYPE) java.util(java.util) DequeImpl(main.system.datatypes.DequeImpl) DeathAnim(eidolons.libgdx.anims.std.DeathAnim) BattleClickListener(eidolons.libgdx.bf.mouse.BattleClickListener) AnimMaster(eidolons.libgdx.anims.AnimMaster) EVENT_TYPE(main.game.logic.event.Event.EVENT_TYPE) Gdx(com.badlogic.gdx.Gdx) Batch(com.badlogic.gdx.graphics.g2d.Batch) WaitMaster(main.system.threading.WaitMaster) GuiEventManager(main.system.GuiEventManager) StringMaster(main.system.auxiliary.StringMaster) DC_Engine(eidolons.game.battlecraft.DC_Engine) OverlaysManager(eidolons.libgdx.bf.overlays.OverlaysManager) PanelActionsDataSource(eidolons.libgdx.gui.panels.dc.actionpanel.datasource.PanelActionsDataSource) GRAPHIC_OPTION(eidolons.system.options.GraphicsOptions.GRAPHIC_OPTION) VisionManager(eidolons.game.battlecraft.logic.battlefield.vision.VisionManager) LogMaster(main.system.auxiliary.log.LogMaster) EventCallback(main.system.EventCallback) KEYS(main.entity.Ref.KEYS) AnimationConstructor(eidolons.libgdx.anims.AnimationConstructor) FloatingTextMaster(eidolons.libgdx.anims.text.FloatingTextMaster) ResourceSourceImpl(eidolons.libgdx.gui.panels.dc.unitinfo.datasource.ResourceSourceImpl) Group(com.badlogic.gdx.scenes.scene2d.Group) StyleHolder(eidolons.libgdx.StyleHolder) TEXT_CASES(eidolons.libgdx.anims.text.FloatingTextMaster.TEXT_CASES) eidolons.libgdx.bf(eidolons.libgdx.bf) WAIT_OPERATIONS(main.system.threading.WaitMaster.WAIT_OPERATIONS) java.awt(java.awt) TextureCache(eidolons.libgdx.texture.TextureCache) Eidolons(eidolons.game.core.Eidolons) Unit(eidolons.entity.obj.unit.Unit) DC_SoundMaster(eidolons.system.audio.DC_SoundMaster) SHADE_LIGHT(eidolons.libgdx.bf.light.ShadowMap.SHADE_LIGHT) ResourceSourceImpl(eidolons.libgdx.gui.panels.dc.unitinfo.datasource.ResourceSourceImpl) Ref(main.entity.Ref) BattleFieldObject(eidolons.entity.obj.BattleFieldObject) InputEvent(com.badlogic.gdx.scenes.scene2d.InputEvent) Event(main.game.logic.event.Event) Unit(eidolons.entity.obj.unit.Unit)

Aggregations

Unit (eidolons.entity.obj.unit.Unit)258 Coordinates (main.game.bf.Coordinates)53 Ref (main.entity.Ref)33 DC_ActiveObj (eidolons.entity.active.DC_ActiveObj)30 BattleFieldObject (eidolons.entity.obj.BattleFieldObject)26 DC_Obj (eidolons.entity.obj.DC_Obj)26 ArrayList (java.util.ArrayList)26 Obj (main.entity.obj.Obj)26 ObjType (main.entity.type.ObjType)23 DC_SpellObj (eidolons.entity.active.DC_SpellObj)13 DC_Cell (eidolons.entity.obj.DC_Cell)11 Event (main.game.logic.event.Event)11 DC_UnitAction (eidolons.entity.active.DC_UnitAction)10 List (java.util.List)10 DC_Game (eidolons.game.core.game.DC_Game)9 Action (eidolons.game.battlecraft.ai.elements.actions.Action)8 DequeImpl (main.system.datatypes.DequeImpl)8 OUTLINE_TYPE (main.content.enums.rules.VisionEnums.OUTLINE_TYPE)7 Entity (main.entity.Entity)7 DIRECTION (main.game.bf.Coordinates.DIRECTION)7