Пример #1
0
        public void acceptWorkStrike(ActorStrikeAction actorStrikeAction)
        {
            Island relevantIsland = getClosestIslandToLocation(actorStrikeAction.getStriker().getLocation());

            relevantIsland.acceptWorkStrike(actorStrikeAction);
        }
Пример #2
0
        private void handleStrikeAction(ActorAction action)
        {
            ActorStrikeAction strikeAction = (ActorStrikeAction)action;

            if (strikeAction.getStrikeType() == ActorStrikeAction.StrikeType.OnBlock)
            {
                switch (strikeAction.getJobType())
                {
                case JobType.combat:
                    break;

                case JobType.agriculture:
                    islandManager.acceptWorkStrike((ActorStrikeAction)action);
                    SoundsManager.playSoundType(SoundsManager.SoundType.wheatRustling,
                                                ((ActorStrikeAction)action).getStriker().getLocation(), .3f);
                    break;

                case JobType.building:
                    placeBlock(((ActorStrikeBlockAction)action).getStrikeTarget(),
                               5);
                    break;

                case JobType.mining:
                    strikeAction.getStriker().setRotationWithGivenDeltaVec(strikeAction.getLookDeltaVec());
                    islandManager.acceptWorkStrike((ActorStrikeAction)action);
                    break;

                case JobType.logging:
                    strikeAction.getStriker().setRotationWithGivenDeltaVec(strikeAction.getLookDeltaVec());
                    islandManager.acceptWorkStrike((ActorStrikeAction)action);
                    //chopBlockAt(((ActorStrikeBlockAction)action).getStrikeTarget());
                    break;

                default:
                    throw new Exception("unhandled job type");
                }
            }
            else // is strike along ray
            {
                ActorStrikeAlongRayAction rayStrike = (ActorStrikeAlongRayAction)strikeAction;
                switch (strikeAction.getJobType())
                {
                case JobType.combat:

                    actorManager.handleStrike(rayStrike.getStriker(), rayStrike.getStrikeOrigen(),
                                              rayStrike.getStrikeDirectionNormal(), rayStrike.getStrikeDistance(), 1);
                    rayStrike.getStriker().StartStrikeAnimation();
                    break;

                case JobType.agriculture:
                    islandManager.acceptWorkStrike(rayStrike);
                    break;

                case JobType.building:
                    islandManager.acceptWorkStrike(rayStrike);
                    break;

                case JobType.mining:
                    islandManager.acceptWorkStrike(rayStrike);
                    break;

                case JobType.logging:
                    islandManager.acceptWorkStrike(rayStrike);
                    break;

                case JobType.CarryingSomething:
                    islandManager.acceptWorkStrike(rayStrike);
                    break;
                }
            }
        }