Example #1
0
        private void CreateUpperPanel()
        {
            upperPanelObject = new GameObject("Upper Panel", typeof(UnityEngine.UI.Image));
            upperPanelObject.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width, Relative.UPPER_PANEL_HEIGTH);
            upperPanelObject.transform.position = new Vector2(Screen.width / 2f, Screen.height - Relative.UPPER_PANEL_HEIGTH / 2f);
            upperPanelObject.GetComponent <UnityEngine.UI.Image>().color = Color.black;
            upperPanelObject.transform.SetParent(infoObject.transform);

            backArrowImage = new Image.Builder()
                             .SetName(Names.BACK_ARROW_ICON_NAME)
                             .AddOnClickListener(History.GoBack)
                             .SetImage(SpriteLoader.LoadSprite("back_arrow_ico"))
                             .SetParent(upperPanelObject.transform)
                             .SetSize(size: Vector2.one * Relative.BUTTON_HEIGHT, additionalClickableArea: 2f)
                             .SetPosition(new Vector2(Relative.BUTTON_MARGIN + Relative.BUTTON_HEIGHT / 2f, Screen.height - Relative.BUTTON_MARGIN - Relative.BUTTON_HEIGHT / 2f))
                             .SetRotationPoint(UI.RotationPoint.Center)
                             .build();

            GameObject upperPanelText = new GameObject("Text", typeof(Text));

            upperPanelText.transform.SetParent(upperPanelObject.transform);
            upperPanelText.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width - 4 * Relative.BUTTON_MARGIN - Relative.BUTTON_HEIGHT / 2f, Relative.UPPER_PANEL_HEIGTH);
            upperPanelText.GetComponent <RectTransform>().position  = new Vector2(Screen.width / 2f + 2 * Relative.BUTTON_MARGIN + Relative.BUTTON_HEIGHT / 4f, Screen.height - Relative.UPPER_PANEL_HEIGTH / 2f);
            upperPanelText.GetComponent <Text>().font      = Resources.Load <Font>("fonts/Roboto-Regular");
            upperPanelText.GetComponent <Text>().fontSize  = Relative.SMALL_FONT_SIZE;
            upperPanelText.GetComponent <Text>().alignment = TextAnchor.MiddleLeft;
            upperPanelText.GetComponent <Text>().color     = Color.white;
            upperPanelText.GetComponent <Text>().text      = LocalizationManager.Instance.GetLocalizedValue("rock_fortress_city_tustan");

            upperPanelObject.SetActive(false);

            scrollablePanelObject.GetComponent <ScrollRect>().onValueChanged.AddListener(
                (Vector2 value) => upperPanelObject.SetActive(value.y < textContentToAllRatio)
                );
        }
        private SpawnPattern InterperetPattern(JToken obj)
        {
            if (obj.Type == JTokenType.String)
            {
                return(presets[obj.ToString()]);
            }
            switch (obj["type"].ToString())
            {
            case "spiral":
                return(new SpiralPattern(BulletManager.Instance.EnemyBullets, SpriteLoader.LoadSprite("redBullet"), obj["speed"].ToObject <float>(), obj["amount"].ToObject <int>(), obj["interval"].ToObject <double>(), obj["rotations"].ToObject <int>(), obj["distance"].ToObject <int>()));

            case "linear":
                return(new LinearPattern(BulletManager.Instance.EnemyBullets, SpriteLoader.LoadSprite("redBullet"), obj["speed"].ToObject <float>(), obj["amount"].ToObject <int>(), obj["interval"].ToObject <double>()));

            case "surround":
                return(new SurroundPattern(BulletManager.Instance.EnemyBullets, SpriteLoader.LoadSprite("redBullet"), obj["speed"].ToObject <float>(), obj["amount"].ToObject <int>(), obj["interval"].ToObject <float>(), obj["fireCount"].ToObject <int>()));

            case "rotate":
                return(new RotateScreenPattern(obj["rotationSpeed"].ToObject <float>(), obj["pauseDelay"].ToObject <float>()));

            case "flipX":
                return(new FlipXScreenPattern(obj["rotationSpeed"].ToObject <float>(), obj["pauseDelay"].ToObject <float>()));

            case "flipY":
                return(new HorizontalRotationPattern(obj["rotationSpeed"].ToObject <float>(), obj["pauseDelay"].ToObject <float>()));

            case "none":
                return(new NoShootPattern(BulletManager.Instance.EnemyBullets, obj["time"].ToObject <double>()));
            }
            return(null);
        }
        public void Update(GameTime gameTime)
        {
            GameScore score = GameScore.Instance;
            uint      diff  = score.Score - lastScore;

            if (diff > 1000)
            {
                lastScore = score.Score;
                Random        rand     = new Random();
                Vector2       position = new Vector2(rand.Next(1, 1500), rand.Next(1, 1080));
                SeismicCharge charge   = new SeismicCharge(SpriteLoader.LoadSprite("sesmic_charge"), MovementFactory.Create("Stationary", 0, new List <Vector2>()
                {
                    position
                }));
                ItemsManager.Instance.Add(charge);
            }

            foreach (SeismicCharge charge in this.deployedBombs)
            {
                if (charge.IsAlive)
                {
                    charge.Update(gameTime);
                }
            }
            this.deployedBombs.RemoveAll(s => !s.IsAlive); // clean up
        }
Example #4
0
        public static SpriteN Create(string type)
        {
            switch (type)
            {
                case "seismic":
                    return SpriteLoader.LoadSprite("sesmic_charge");
                default:
                    throw new NotImplementedException("other types of items are not supported");

            }
        }
Example #5
0
        private IEnumerator CaptureScreenshot()
        {
            Runtime.makeScreenshotButton.SetColor(Color.grey);
            string screenshot_name = "screenshot_" + DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss_fff");
            int    bottom_margin   = (int)(Relative.LOWER_PANEL_HEIGHT);
            int    top_margin      = Screen.height - (int)(new DP(48f)); // upper panel height

            ScreenshotManager.SCREENSHOT_PROCESSING = true;
            NativeAdapter.Instance.MakeScreenshot(screenshot_name, bottom_margin, top_margin, Input.deviceOrientation);

            while (ScreenshotManager.SCREENSHOT_PROCESSING)
            {
                yield return(null);
            }

            Runtime.makeScreenshotButton.SetColor(Color.white);

            #if UNITY_ANDROID
            IDialog id = new Dialog.Builder()
                         .SetIcon(SpriteLoader.LoadSprite("share_ico"))
                         .SetButton(LocalizationManager.Instance.GetLocalizedValue("ok"), () => {
                NativeAdapter.Instance.ShareFile(LocalizationManager.Instance.GetLocalizedValue("share_image_using"), LocalizationManager.Instance.GetLocalizedValue("share_play_store") + " " + Config.urlToPlayStore, ScreenshotManager.SCREENSHOT_PATH, "image/jpeg");
            })
                         .SetText(LocalizationManager.Instance.GetLocalizedValue("screenshot_captured"))
                         .SetView(Relative.CAMERA_WINDOW_RECT)
                         .build();

            id.show();
            yield return(new WaitForSeconds(3f));

            if (id != null && id.isActive)
            {
                id.dismiss();
            }
            #elif UNITY_IOS
            if (ScreenshotManager.SCREENSHOT_PROCESSING_ERROR)
            {
                IDialog id = new Dialog.Builder()
                             .SetIcon(SpriteLoader.LoadSprite("share_ico"))
                             .SetButton(LocalizationManager.Instance.GetLocalizedValue("ok"), () => {})
                             .SetText(ScreenshotManager.SCREENSHOT_ERROR_MESSAGE)
                             .SetView(Relative.CAMERA_WINDOW_RECT)
                             .build();

                id.show();
                yield return(new WaitForSeconds(3f));

                if (id != null && id.isActive)
                {
                    id.dismiss();
                }
            }
            #endif
        }
Example #6
0
 private void CreateXIcon()
 {
     xIconImage = new Image.Builder()
                  .SetName(Names.X_ICON_NAME)
                  .AddOnClickListener(History.GoBack)
                  .SetImage(SpriteLoader.LoadSprite("back_arrow_ico"))
                  .SetParent(infoObject.transform)
                  .SetSize(size: Vector2.one * Relative.BUTTON_HEIGHT, additionalClickableArea: 3f)
                  .SetPosition(new Vector2(Relative.BUTTON_MARGIN + Relative.BUTTON_HEIGHT / 2f, Screen.height - (Relative.BUTTON_MARGIN + Relative.BUTTON_HEIGHT / 2f)))
                  .SetRotationPoint(RotationPoint.Center)
                  .build();
 }
Example #7
0
        public static Item Create(string type, Vector2 position)
        {
            switch (type)
            {
            case "seismic":
                return(new SeismicCharge(SpriteLoader.LoadSprite("sesmic_charge"), MovementFactory.Create("Stationary", 0, new List <Vector2>()
                {
                    position
                })));

            default:
                throw new NotImplementedException("other types of items are not supported");
            }
        }
Example #8
0
        // damage - placeDelay - bombTimer
        public Bomb(float dmg, float bombTimer, int currentBombType)
        {
            this.Damage = dmg;
            //this.PlaceSpeed = placeDelay;
            this.IgnitionDuration = bombTimer;
            CurrentBombType       = currentBombType;

            // Loading default bomb texture
            this.ProjectileSprite = SpriteLoader.LoadSprite(Resources.bomb, new IntRect(0, 0, 64, 64));
            this.Origin           = SpriteUtils.GetSpriteCenter(ProjectileSprite);

            // Loading explosion texture
            this.ExplosionSprite = SpriteLoader.LoadSprite(Resources.explosionSmall, new IntRect(0, 0, 64, 64));
            this.Texture         = ExplosionSprite.Texture;
        }
        public static SpriteN Create(string type)
        {
            switch (type)
            {
            case "B":
                return(SpriteLoader.LoadSprite("enemy2"));

            case "MB":
                return(SpriteLoader.LoadSprite("mid-boss"));

            case "FB":
                return(SpriteLoader.LoadSprite("final-boss"));

            default:
                return(SpriteLoader.LoadSprite("enemy1"));
            }
        }
    string ReceiveCraftingItem(string itemName)
    {
        TextAsset jsonData = InventoryManager.itemsJsonFile;
        Items     values   = JsonUtility.FromJson <Items>(jsonData.text);

        foreach (Item i in values.items)
        {
            if (itemName == i.spriteName)
            {
                referenceObject.GetComponent <AudioPlayer>().PlaySound(6);
                referenceObject.GetComponent <InventoryManager>().AddItem(
                    i.spriteName, SpriteLoader.LoadSprite(itemName), i.name, i.description, i.value, 1, i.usableItem, i.healing, -1);
                return(i.spriteName);
            }
        }
        return(null);
    }
Example #11
0
        public void PrimeCharge(TimeSpan time)
        {
            Timer timer = new Timer(time.TotalMilliseconds);

            timer.AutoReset = false;
            timer.Elapsed  += (a, e) => {
                this.isPrimed = true;
                this.Sprite   = SpriteLoader.LoadSprite("shockwave");
                originalSize  = waveSize = (float)(this.Sprite.Texture.Width > this.Sprite.Texture.Height ? Sprite.Texture.Height : Sprite.Texture.Width);
                float r = (float)(this.Sprite.Texture.Width > this.Sprite.Texture.Height ? Sprite.Texture.Height : Sprite.Texture.Width);
                var   p = Position;
                this.hitCircle = new HitCircle(p, r / 2);
                SoundManager  managerRef    = SoundManager.Instance;
                VolumeManager volumeManager = VolumeManager.Instance;
                managerRef.Explosion1.Play(volume: volumeManager.SoundLevel, pitch: 0.0f, pan: 0.0f);
            };
            timer.Start();
        }
Example #12
0
        private void CreateIcons()
        {
            // Warning: outOfMapIconObject must be created before UI buttons!!! in this case it won't overlay them on the screen
            outOfMapIconImage = new Image.Builder()
                                .SetName(Names.OUT_OF_MAP_ICON_NAME)
                                .SetImage(outOfMapIcon)
                                .SetParent(mapWindow.transform)
                                .SetSize(Vector2.one * Relative.OUT_OF_MAP_ARROW_LENGH)
                                .SetActive(false)
                                .build();

            locationIconImage = new Controls.Image.Builder()
                                .SetName(Names.LOCATION_ICON_NAME)
                                .SetImage(SpriteLoader.LoadSprite("marker_user"))
                                .SetParent(mapWindow.transform)
                                .SetSize(new Vector2(Relative.MARKER_ICON_WIDTH, Relative.MARKER_ICON_HEIGHT))
                                .SetRotationPoint(RotationPoint.Center)
                                .SetActive(false)
                                .build();
        }
Example #13
0
        private void CreateUpperPanel()
        {
            GameObject upperPanelObject = new GameObject(Names.UPPER_PANEL_NAME, typeof(UnityEngine.UI.Image));

            upperPanelObject.GetComponent <RectTransform>().sizeDelta = new Vector2(Screen.width, Relative.UPPER_PANEL_HEIGTH);
            upperPanelObject.transform.position = new Vector2(Screen.width / 2f, Screen.height - Relative.UPPER_PANEL_HEIGTH / 2f);
            upperPanelObject.GetComponent <UnityEngine.UI.Image>().color = Color.black;
            upperPanelObject.transform.SetParent(cameraWindow.transform);

            new UI.Controls.Image.Builder()
            .SetName(Names.MAP_BUTTON_NAME)
            .AddOnClickListener(MapManager.Instance.ShowMap)
            .SetImage(SpriteLoader.LoadSprite("map_ico"))
            .SetParent(upperPanelObject.transform)
            .SetSize(size: Vector2.one *Relative.BUTTON_HEIGHT, additionalClickableArea: 2f)
            .SetPosition(new Vector2(Screen.width - Relative.BUTTON_HEIGHT - 3 * Relative.BUTTON_MARGIN - Relative.BUTTON_HEIGHT / 2f, Screen.height - Relative.BUTTON_MARGIN - Relative.BUTTON_HEIGHT / 2f))
            .SetRotationPoint(UI.RotationPoint.Center)
            .build();

            new UI.Controls.Image.Builder()
            .SetName(Names.INFO_BUTTON_NAME)
            .AddOnClickListener(InfoManager.Instance.ShowInfo)
            .SetImage(SpriteLoader.LoadSprite("info_ico"))
            .SetParent(upperPanelObject.transform)
            .SetSize(size: Vector2.one *Relative.BUTTON_HEIGHT, additionalClickableArea: 2f)
            .SetPosition(new Vector2(Screen.width - Relative.BUTTON_MARGIN - Relative.BUTTON_MARGIN / 2f - Relative.BUTTON_HEIGHT / 2f, Screen.height - Relative.BUTTON_MARGIN - Relative.BUTTON_HEIGHT / 2f))     // Relative.BUTTON_MARGIN / 2f in width is additional
            .SetRotationPoint(UI.RotationPoint.Center)
            .build();

            Runtime.resetExtendedTrackingButton = new UI.Controls.Image.Builder()
                                                  .SetName(Names.RESET_EXTENDED_TRACKING_BUTTON)
                                                  .AddOnClickListener(ExtendedTrackingBehaviour.ResetExtendedTracking)
                                                  .SetImage(SpriteLoader.LoadSprite("reset_ico"))
                                                  .SetParent(upperPanelObject.transform)
                                                  .SetSize(size: Vector2.one * Relative.BUTTON_HEIGHT, additionalClickableArea: 2f)
                                                  .SetPosition(new Vector2(Screen.width - Relative.BUTTON_MARGIN - Relative.BUTTON_MARGIN / 2f - Relative.BUTTON_HEIGHT / 2f, Screen.height - Relative.UPPER_PANEL_HEIGTH - Relative.BUTTON_MARGIN - Relative.BUTTON_HEIGHT / 2f)) // Relative.BUTTON_MARGIN / 2f in width is additional
                                                  .SetRotationPoint(UI.RotationPoint.Center)
                                                  .SetActive(false)
                                                  .build()
                                                  .gameObject;
        }
Example #14
0
        public void ShowMap()
        {
            markerImages = new List <IImage>();
            mapWindow    = new GameObject(Names.MAP_WINDOW_NAME);
            mapWindow.transform.SetParent(Runtime.canvas.transform);
            mapWindow.transform.localPosition = Vector3.zero;

            InstantiateMapToFullScreen();
            CreateMarkers();
            CreateIcons();
            CreateUpperPanel();
            UpdateMarkersLocation();

            if (!Input.location.isEnabledByUser)
            {
                if (!gps_off_message_shown)
                {
                    new Controls.Dialog.Builder()
                    .SetIcon(SpriteLoader.LoadSprite("compas_ico"))
                    .SetButton(LocalizationManager.Instance.GetLocalizedValue("ok"), NativeAdapter.Instance.GoToGPSSettings)
                    .SetText(LocalizationManager.Instance.GetLocalizedValue("gps_disabled"))
                    .SetView(Relative.MAP_WINDOW_RECT)
                    .build()
                    .show();

                    gps_off_message_shown = true;
                }
            }
            else
            {
                gps_off_message_shown = false;
            }

            UpdateLocation(Input.location.lastData);

            History.AddWindow(this);
        }
Example #15
0
        private void CreateLowerPanel()
        {
            /* LOWER PANEL */
            GameObject lowerPanelObject = new GameObject(Names.LOWER_PANEL_NAME, typeof(UnityEngine.UI.Image));

            UnityEngine.UI.Image lowerPanelImage = lowerPanelObject.GetComponent <UnityEngine.UI.Image>();
            lowerPanelImage.color = Color.black;

            RectTransform lowerPanelRT = lowerPanelObject.GetComponent <RectTransform>();

            lowerPanelRT.sizeDelta = new Vector2(Screen.width, Relative.LOWER_PANEL_HEIGHT);
            lowerPanelRT.position  = new Vector2(Screen.width, Relative.LOWER_PANEL_HEIGHT) / 2f;

            lowerPanelRT.SetParent(cameraWindow.transform);

            // "make photo" button
            Runtime.makeScreenshotButton = new Image.Builder()
                                           .SetName(Names.CAPTURE_SCREENSHOT_BUTTON_NAME)
                                           .AddOnClickListener(Runtime.canvas.GetComponent <ScreenshotManager>().Capture)
                                           .SetImage(SpriteLoader.LoadSprite("shutter_ico"))
                                           .SetParent(lowerPanelRT)
                                           .SetSize(size: Vector2.one * Relative.MAKE_PHOTO_BUTTON_HEIGHT, additionalClickableArea: 1.5f)
                                           .SetPosition(new Vector2(Screen.width / 2f, Relative.LOWER_PANEL_HEIGHT / 2f))
                                           .SetRotationPoint(RotationPoint.Center)
                                           .build();

            // "revert camera" button
            new Image.Builder()
            .SetName(Names.REVERT_CAMERA_BUTTON_NAME)
            .AddOnClickListener(OnRevertCamera)
            .SetImage(SpriteLoader.LoadSprite("camera_ico"))
            .SetParent(lowerPanelRT)
            .SetSize(size: Vector2.one *Relative.BUTTON_HEIGHT, additionalClickableArea: 3f)
            .SetPosition(new Vector2(Screen.width / 4f, Relative.LOWER_PANEL_HEIGHT / 2f))
            .SetRotationPoint(UI.RotationPoint.Center)
            .build();

            Runtime.playButton = new UI.Controls.Image.Builder()
                                 .SetName("Play Button")
                                 .SetImage(SpriteLoader.LoadSprite("play_ico"))
                                 .SetParent(lowerPanelRT)
                                 .AddOnClickListener(delegate(){
                Runtime.pauseButton.gameObject.SetActive(true);
                AnimationHandler.ANIMATION_ENABLED = true;
                Runtime.playButton.gameObject.SetActive(false);
            })
                                 .SetSize(size: Vector2.one *Relative.BUTTON_HEIGHT, additionalClickableArea: 3f)
                                 .SetPosition(new Vector2(3 * Screen.width / 4f, Relative.LOWER_PANEL_HEIGHT / 2f))
                                 .SetRotationPoint(RotationPoint.Center)
                                 .SetActive(false)
                                 .build()
                                 .gameObject;

            Runtime.pauseButton = new UI.Controls.Image.Builder()
                                  .SetName("Pause Button")
                                  .SetImage(SpriteLoader.LoadSprite("pause_ico"))
                                  .SetParent(lowerPanelRT)
                                  .AddOnClickListener(delegate(){
                Runtime.playButton.gameObject.SetActive(true);
                AnimationHandler.ANIMATION_ENABLED = false;
                Runtime.pauseButton.gameObject.SetActive(false);
            })
                                  .SetSize(size: Vector2.one *Relative.BUTTON_HEIGHT, additionalClickableArea: 3f)
                                  .SetPosition(new Vector2(3 * Screen.width / 4f, Relative.LOWER_PANEL_HEIGHT / 2f))
                                  .SetRotationPoint(RotationPoint.Center)
                                  .SetActive(false)
                                  .build()
                                  .gameObject;
        }
Example #16
0
        public void Run()
        {
            // Initializing the tilemap facade
            tileMapFacade = new TileMapFacade((int)VideoResolution[0], (int)VideoResolution[1], Properties.Resources.spritesheet2);
            BindKeys();

            _boardBuilder = new BoardBuilder();
            ConfigureHubConnections();

            // Wall box
            _boxWall = SpriteLoader.LoadSprite(Properties.Resources.DesolatedHut, new IntRect(0, 0, 100, 100));

            _boxWall.Position = new Vector2f(250, 250);
            _boxWall.Scale    = new Vector2f(0.5f, 0.5f);

            // UI score object
            _renderWindow = CreateRenderWindow(Styles.Default);
            _renderWindow.SetFramerateLimit(60);
            _renderWindow.SetActive();
            scoreBoard = new GameScore(_renderWindow, otherPlayers, mainPlayer.connectionId);

            _debugGui = new DebugGUI(_renderWindow);
            execRTCounter(); // sync with server

            // Player postion from left, top (x, y)
            var coordText = new Text("", new Font(Properties.Resources.arial));

            coordText.CharacterSize = 20;
            coordText.Position      = new Vector2f(10, 10);

            // BombKey [SPACE] event handler
            _renderWindow.KeyPressed += new EventHandler <KeyEventArgs>(OnKeyPressed);

            // damage - placeDelay - bombTimer
            mainPlayer.Bomb = new Bomb(20, 2500, 0);

            // Chain object init


            // connecting chains
            chainLogger.setNextLogger(chainLogger2);
            chainLogger2.setNextLogger(chainLogger3);


            float RespawnPause = 0f;

            while (_renderWindow.IsOpen)
            {
                Time deltaTime = FrameClock.Restart();

                // Requesting refresh data from server at every new frame
                _userHubConnection.InvokeAsync("RefreshPlayer", new PlayerDTO()
                {
                    connectionId = mainPlayer.connectionId, position = mainPlayer.GetPointPosition(), IsDead = mainPlayer.IsDead
                }).Wait();

                _renderWindow.DispatchEvents(); // event handler to processes keystrokes/mouse movements
                _renderWindow.Clear();

                // TILES
                _renderWindow.Draw(tileMapFacade.GetTileMap());

                if (!ghostDead)
                {
                    foreach (var enemy in _boardBuilder._enemies)
                    {
                        var sprite = enemy.getSprite();
                        _renderWindow.Draw(sprite);
                    }
                }

                foreach (Player p in otherPlayers)
                {
                    if (!p.IsDead)
                    {
                        _renderWindow.Draw(p);
                    }
                }

                if (!mainPlayer.IsDead)
                {
                    _renderWindow.Draw(mainPlayer);

                    //DEBUG - RED FRAME
                    _renderWindow.Draw(mainPlayer.DrawFrame());
                }

                // Update drawable destructor timers
                UpdateLoop(deltaTime);

                // BOMBS
                mainPlayer.Update();    // Update projectile placement positions (bombs)
                DrawLoop();             // Draw projectile buffer list


                // RESPAWN ROUTINE

                /*if(RespawnPause > 0)
                 *  RespawnPause -= deltaTime.AsSeconds();*/

                /*if (mainPlayer.CheckDeathCollisions() && RespawnPause <= 0f) // if collided with flames?
                 * {
                 *  RespawnPause = 2f;
                 *  scoreBoard.UpdateScore("P1");
                 * }*/

                // Print player coordinates left, top (x, y)
                coordText.DisplayedString = $"x {mainPlayer.Position.X} y {mainPlayer.Position.Y}";
                _renderWindow.Draw(coordText);
                _renderWindow.Draw(scoreBoard);
                _renderWindow.Draw(_debugGui);

                if (_renderWindow.HasFocus()) // if window is focused
                {
                    InputControl();
                }

                _renderWindow.Display(); // update screen
            }
        }
Example #17
0
 public void Init()
 {
     this.infoTitleBackground = SpriteLoader.LoadSprite("castle_background");
 }
        public WorldEditorTerrainToolsViewModel(IPackageRepository repository, SpriteLoader spriteLoader)
        {
            this._repository = repository;
            this._spriteLoader = spriteLoader;
            this._isGridVisible = false;

            this._tiles = new ObservableCollection<TileViewModel>();

            foreach (var asset in repository.Assets.Where(x => x.Type == EditorAssetTypes.TerrainTileDefinition).OrderBy(x => x.Key))
            {
                var tileData = _repository.GetAssetData<TerrainTileDefinitionResource>(asset.Id);
                _tiles.Add(new TileViewModel() { Key = tileData.Key, Sprite = _spriteLoader.LoadSprite(tileData.SpriteKey) });
            }

            this.SelectedTile = _tiles.FirstOrDefault();
            this.SelectedTool = TerrainEditorTools.Paint;

            SetToolCommand = new DelegateCommand<String>(x =>
                {
                    if (x == "Fill")
                        SelectedTool = TerrainEditorTools.Fill;
                    else if (x == "Paint")
                        SelectedTool = TerrainEditorTools.Paint;
                    else if (x == "EyeDropper")
                        SelectedTool = TerrainEditorTools.EyeDropper;
                });
        }
Example #19
0
    public void LoadGameObjectTransform()
    {
        File.ReadAllText(Application.dataPath + "/Resources/save.txt");
        StreamReader tr = new StreamReader(Application.dataPath + "/Resources/save.txt", true);

        string[] values = tr.ReadLine().Trim().Split('%');
        tr.Close();

        gameObjectTransforms    = new Dictionary <string, Vector3>();
        objectsWithStatusesList = new Dictionary <string, int>();
        uniqueObjectsList       = new Dictionary <string, GameObject>();
        destroyableObjectsList  = new Dictionary <string, GameObject>();
        questGiverValues        = new Dictionary <string, string[]>();

        //
        string[] parsedGameObjects = values[0].Split('^');
        foreach (string s in parsedGameObjects)
        {
            if (s.Length > 0)
            {
                string vectors = s.Split('#')[1];
                vectors = vectors.Remove(0, 1);
                vectors = vectors.Remove(vectors.Length - 1, 1);
                string[] vList = vectors.Split(',');

                gameObjectTransforms.Add(s.Split('#')[0], new Vector3(float.Parse(vList[0].Trim(), CultureInfo.InvariantCulture), float.Parse(vList[1].Trim(), CultureInfo.InvariantCulture),
                                                                      float.Parse(vList[2].Trim(), CultureInfo.InvariantCulture)));
            }
        }
        string[] parsedObjectsStatuses = values[1].Split('^');
        foreach (string s in parsedObjectsStatuses)
        {
            if (s.Length > 0)
            {
                objectsWithStatusesList.Add(s.Split('#')[0], Int32.Parse(s.Split('#')[1]));
            }
        }
        string[] parsedUniqueObjects = values[2].Split('^');
        foreach (string s in parsedUniqueObjects)
        {
            if (s.Length > 0)
            {
                uniqueObjectsList.Add(s, new GameObject());
            }
        }
        string[] parsedDestroyableObjects = values[3].Split('^');
        foreach (string s in parsedDestroyableObjects)
        {
            if (s.Length > 0)
            {
                destroyableObjectsList.Add(s, new GameObject());
            }
        }
        string[] parsedQuestGivers = values[4].Split('^');
        foreach (string s in parsedQuestGivers)
        {
            if (s.Length > 0)
            {
                string[] vList = s.Split('#');

                questGiverValues.Add(vList[0], new string[] { vList[1], vList[2], vList[3] });
            }
        }
        string[]    parsedItems            = values[6].Split('^');
        List <Item> loadedItemsInInventory = new List <Item>();

        foreach (string s in parsedItems)
        {
            if (s == "EMPTY")
            {
                loadedItemsInInventory.Add(null);
            }
            else
            {
                TextAsset jsonData = InventoryManager.itemsJsonFile;
                Items     v        = JsonUtility.FromJson <Items>(jsonData.text);
                foreach (Item i in v.items)
                {
                    if (s == i.spriteName)
                    {
                        loadedItemsInInventory.Add(new Item(i.spriteName, i.name, i.description, i.value, i.quantity, SpriteLoader.LoadSprite(i.spriteName), i.usableItem, i.healing));
                    }
                }
            }
        }
        //
        foreach (GameObject gObject in gameObjects)
        {
            gObject.transform.position = gameObjectTransforms[gObject.name];
        }
        foreach (GameObject gObject in objectsWithStatuses)
        {
            if (gObject.name == "Campfire")
            {
                gObject.GetComponent <CampfireInteractionManager>().status = objectsWithStatusesList[gObject.name];
                gObject.GetComponent <CampfireInteractionManager>().ManageStatus();
            }
        }
        foreach (GameObject g in uniqueObjects)
        {
            if (!uniqueObjectsList.ContainsKey(g.name))
            {
                Destroy(g);
            }
        }
        foreach (GameObject g in destroyableObjects)
        {
            if (!destroyableObjectsList.ContainsKey(g.name))
            {
                Destroy(g);
            }
        }
        foreach (GameObject g in questGivers)
        {
            g.GetComponent <Quest_Manager>().questName                 = questGiverValues[g.name][0];
            g.GetComponent <Quest_Manager>().questAvailable            = (questGiverValues[g.name][1] == "true" ? true : false);
            g.GetComponent <Quest_Manager>().noRequirementQuestStarted = (questGiverValues[g.name][2] == "true" ? true : false);
        }
        InventoryManager.itemsInInventory = loadedItemsInInventory;
        inCaves = values[7] == "True" ? true : false;

        if (inCaves)
        {
            ambientPlayer.GetComponent <AudioSource>().clip = cavesTheme;
            ambientPlayer.GetComponent <AudioSource>().Play();
        }
        else
        {
            ambientPlayer.GetComponent <AudioSource>().clip = seaTheme;
            ambientPlayer.GetComponent <AudioSource>().Play();
        }

        load = false;
    }
Example #20
0
 // damage - placeDelay - bombTimer
 public SuperBomb() : base(20, 2000, (int)BombType.SuperBomb)
 {
     this.ProjectileSprite = SpriteLoader.LoadSprite(Resources.superbomb, new IntRect(0, 0, 64, 64));
     this.Origin           = SpriteUtils.GetSpriteCenter(ProjectileSprite);
     //this.CurrentBombType = (int)BombType.SuperBomb;
 }