Exemple #1
0
    private void GetNodes()
    {
        // If in editor, skip.
        if (!GetTree().GetRoot().HasNode("Game"))
        {
            return;
        }

        GameNode        = GetTree().GetRoot().GetNode("Game") as Node2D;
        FirstSpellSlot  = GameNode.GetNode("UI/Screen/SelectedSpell") as Control;
        SecondSpellSlot = GameNode.GetNode("UI/Screen/SecondSpell") as Control;

        // TODO: Add path support.
        LoadLevel("res://editorLevel.tscn"); // Load level.

        CurrentLevel = GameNode.GetNode("CurrentLevel") as Level;
        Entities     = CurrentLevel.GetNode("Layers/Entities") as YSort;

        InGameMode = true;

        // Spawn Player.
        CurrentLevel.SpawnPlayer();
        Hand = Entities.GetNode("Player/Hand") as Hand;

        if (CurrentLevel is null)
        {
            GD.PrintErr("[GAME] Current Level not found");
        }
    }
Exemple #2
0
 public void Reset(int score)
 {
     if (score > _highscore)
     {
         _highscore = score;
     }
     header.GetNode <Label>("GameTitleScore").Text = "High Score: " + _highscore;
     centerMessage.Text = "Game Over!\nPlay Again?";
     centerMessage.Show();
 }
Exemple #3
0
    private Node2D InstantiateScene(PackedScene scene)
    {
        Node2D instance = scene.Instance() as Node2D;

        instance.GetNode("VisibilityNotifier2D").Connect("screen_exited", this, "_OnPieceScreenExited", null, 1);
        instance.GetNode("VisibilityNotifier2D").Connect("screen_entered", this, "_OnPieceScreenEntered", null, 1);

        this.LevelHolder.AddChild(instance);

        return(instance);
    }
    public override void _Ready()
    {
        _potionObject = GetNode <Node2D>("PotionObject");
        _area         = _potionObject.GetNode <Area2D>("Area2D");
        _sprite       = _potionObject.GetNode <Sprite>("Sprite");
        _soundPlayer  = _potionObject.GetNode <AudioStreamPlayer2D>("SoundPlayer");

        _potionObject.Rotation = InitialRotation;
        _potionObject.Position = InitialPosition;
        _totalDistance         = (InitialPosition - Destination).Length();
        _area.Connect("body_entered", this, nameof(OnEnter));
    }
Exemple #5
0
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
        _player =
            _body.GetNode <AnimationPlayer>(new NodePath("AnimationPlayer"));
        _player.CurrentAnimation            = FireAnim;
        _player.GetAnimation(FireAnim).Loop = false; // Sometimes it's true(???)
        var sprite =
            _body.GetNode <AnimatedSprite>(new NodePath("AnimatedSprite"));

        sprite.Frame = 9;
        AddChild(_body);
        _body.Position = new Vector2(0, 0);
        _body.Visible  = true;
    }
Exemple #6
0
 private void RefreshLED()
 {
     if (energy >= energyMax && oxygene >= maxOxygene)
     {
         Color color = Color.Color8(255, 0, 0);
         LED.GetNode <Sprite>("led").Modulate = color;
         LED.GetNode <Light2D>("Light").Color = color;
     }
     else
     {
         Color color = Color.Color8(66, 190, 40);
         LED.GetNode <Sprite>("led").Modulate = color;
         LED.GetNode <Light2D>("Light").Color = color;
     }
 }
Exemple #7
0
    private void InitializeLevel()
    {
        _floorTileMap = _level.GetNode <TileMap>("FloorTileMap");

        _player = _level.GetNode <Player>();
        _player.SafeConnect(nameof(Player.StairsGet), this, nameof(OnStairsGet));

        var cells = _floorTileMap.GetUsedCells();

        foreach (Vector2 cellVector in cells)   // each vector is based ont he
        {
            var fogPosition = cellVector * _floorTileMap.CellSize;
            var fog         = _fogScene.Instance <Fog>();
            fog.Position = fogPosition;
            _level.AddChild(fog);
        }
    }
Exemple #8
0
    void addItem(Godot.Vector2 position, float rotation, Texture texture)
    {
        ((Sprite)currentlyAdded.GetNode("Sprite")).Texture = texture;
        currentlyAdded.GlobalPosition = position;
        currentlyAdded.Rotation       = rotation;

        AddChild(currentlyAdded);
    }
Exemple #9
0
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
        signalManager = GetNode <SignalManager>("/root/SignalManager");
        signalManager.Connect(nameof(SignalManager.Defeat), this, "OnDefeat");

        mouseFollower = GetNode <Node2D>("MouseFollower");
        paddleHolder  = GetNode <Node2D>("PaddleHolder");
        paddleArea    = paddleHolder.GetNode <Area2D>("PaddleArea");
    }
Exemple #10
0
    public StageTransition GetTransition(string stageName)
    {
        if (!transitions.HasNode(stageName))
        {
            return(null);
        }

        return(transitions.GetNode <StageTransition>(stageName));
    }
Exemple #11
0
    protected void OnPlayerHit(Node2D node)
    {
        var paddleLength = node.GetNode <Sprite>("Sprite").RegionRect.Size.x;
        var ballX        = Position.x;
        var playerX      = node.Position.x;
        var offsetX      = ballX - playerX;
        var ratio        = offsetX / paddleLength;

        LinearVelocity = new Vector2(LinearVelocity.y * ratio * -1, LinearVelocity.y).Normalized() * speed;
    }
Exemple #12
0
 public void _on_Area2D_area_entered(Area2D area)
 {
     if (area.GetCollisionLayerBit(3))
     {
         explosion.Position = this.Position;
         GetParent().AddChild(explosion);
         ((AnimationPlayer)explosion.GetNode("AnimationPlayer")).Play("Explode");
         globals.kills += 1;
         QueueFree();
     }
 }
Exemple #13
0
        public override void _Ready()
        {
            _foodLoader   = new FoodLoader(true);
            _orderCreator = new OrderCreator(_foodLoader);

            _plates = GetNode <Plates>("Plates");

            _foodContainer  = GetNode <Node2D>("FoodContainer");
            _orderContainer = GetNode <Node2D>("OrderContainer");

            _foodSpawnerTimer = GetNode <Timer>("Timers/FoodSpawner");
            _foodSpawnerTimer.Connect("timeout", this, nameof(SpawnFood));

            _gameOverHover = GetNode <Node2D>("GameOverHover");

            _scoreContainer = GetNode <Node2D>("ScoreContainer");
            _scoreContainer.GetNode <Button>("QuitGameButton").Connect("pressed", this, nameof(QuitGame));
            _scoreContainer.GetNode <Button>("NewGameButton").Connect("pressed", this, nameof(StartNewGame));

            _twitter1 = GetNode <LinkButton>("Twitter");
            _twitter2 = GetNode <LinkButton>("Twitter2");
            _twitter1.Connect("pressed", this, nameof(Twitter), new Godot.Collections.Array {
                "G4MR"
            });
            _twitter2.Connect("pressed", this, nameof(Twitter), new Godot.Collections.Array {
                "IMG4MR"
            });

            var audio = GetNode <Node>("Audio");

            _soundtrack         = audio.GetNode <AudioStreamPlayer>("Soundtrack");
            _gameoverSoundtrack = audio.GetNode <AudioStreamPlayer>("Gameover");
            _itemClick          = audio.GetNode <AudioStreamPlayer>("SFX/ItemClick");
            _buttonClick        = audio.GetNode <AudioStreamPlayer>("SFX/ButtonClick");

            _foodSpawner = new FoodSpawner(_plates, _foodLoader, _foodContainer);

            SpawnEmptyStartOrders();

            LoadHighscore();
        }
Exemple #14
0
        public void StartNewGame()
        {
            _points = 0;
            UpdateScore();

            _soundtrack.Play();
            _buttonClick.Play();

            _gameOverHover.GetNode <Label>("GameOver").Hide();
            _gameOverHover.GetNode <Label>("StartGame").Hide();
            _gameOverHover.GetNode <Sprite>("Background").Hide();

            _scoreContainer.GetNode <Button>("NewGameButton").Text = "Restart";

            _foodSpawner.DespawnAllPlates();
            PurgeOrders();
            SpawnStartOrders();

            _gameRunning = true;
            _foodSpawnerTimer.Start();
        }
Exemple #15
0
 public void explode()
 {
     explosion.Position = this.Position;
     GetParent().AddChild(explosion);
     ((AnimationPlayer)explosion.GetNode("AnimationPlayer")).Play("Explode");
     shootCD.WaitTime = 2.5f;
     shootCD.Start();
     ((Sprite)GetNode("Sprite")).Visible = false;
     horVel  = 0;
     vertVel = 0;
     dying   = true;
 }
Exemple #16
0
        private Node LoadNode(string name)
        {
            var node2D = GetNodeOrNull(name);

            if (node2D is null)
            {
                node2D = backupNode.GetNode(name).Duplicate();
                AddChild(node2D);
            }

            return(node2D);
        }
Exemple #17
0
 public void checkWantCandy(float delta)
 {
     candyTimeout = Math.Max(candyTimeout - delta, 0f);
     if (speechBubble == null)
     {
         return;
     }
     speechBubble.Visible = wantCandy != null;
     if (speechBubble.Visible)
     {
         speechBubble.GetNode <Sprite>("CandySprite").Texture = wantCandy.Texture;
     }
 }
Exemple #18
0
    public override void _Ready()
    {
        _manager      = GetNode("Manager") as Control;
        _health       = _manager.GetNode("HealthLabel") as Label;
        _armour       = _manager.GetNode("ArmourLabel") as Label;
        _healthSprite = _manager.GetNode("Health") as Sprite;
        _armourSprite = _manager.GetNode("Armour") as Sprite;

        AimAt        = _manager.GetNode("AimAt") as Node2D;
        Crosshair    = AimAt.GetNode("Crosshair") as Sprite;
        _fps         = _manager.GetNode("FPS") as Label;
        this.Visible = false;
    }
Exemple #19
0
 private void SetSize()
 {
     //Get the size of the wievport and add the snap step to it to completely cover the screen
     size = GetViewportRect().Size + new Vector2(snapStep, snapStep) * 2;
     //Grab the zoom level of the camera
     size *= player.GetNode <Camera2D>("Camera2D").Zoom;
     //Make it so the size is always divisible by 32
     size.x = Mathf.Stepify(size.x, 32);
     size.y = Mathf.Stepify(size.y, 32);
     //Set the size in tiles to the size the shader is covering
     sizeInTiles.x = (int)size.x / 16;
     sizeInTiles.y = (int)size.y / 16;
     //Set the shader scaled size to the size we got from the camera and snap steps
     Scale = size;
 }
Exemple #20
0
//  // Called every frame. 'delta' is the elapsed time since the previous frame.
    public override void _Process(float delta)
    {
        currentEntity = SelectionController.SelectedEntity;
        if (currentEntity != null)
        {
            Sprite currentSprite = currentEntity.GetNode <Sprite>("Sprite");
            selectedSprite.Texture = currentSprite.Texture;
            Visible = true;
        }
        else
        {
            Visible = false;
            selectedSprite.Texture = null;
        }
    }
Exemple #21
0
        public override void _Ready()
        {
            base._Ready();
            Map     = GetNode <Node2D>("Map");
            Spawn   = Map.GetNode <Position2D>("Spawn");
            Corpses = GetNode <Node2D>("Corpses");
            Camera  = GetNode <Camera2D>("MainCamera");
            UI      = GetNode <UI>("CanvasLayer/UI");
            RotationAnimationPlayer = GetNode <RotationAnimationPlayer>("RotationAnimationPlayer");

            Emitter.Instance.Connect(nameof(Emitter.NewPlayerSignal), this, nameof(OnNewPlayer));
            Emitter.Instance.Connect(nameof(Emitter.ActivateCheckPoint), this, nameof(OnActivateCheckPoint));
            Emitter.Instance.Connect(nameof(Emitter.Finish1Game), this, nameof(OnFinish1Game));
            Emitter.Instance.Connect(nameof(Emitter.Finish2Game), this, nameof(OnFinish2Game));

            SpawnPlayer();
        }
Exemple #22
0
    public override void _Process(float delta)
    {
        if (_agent == null || !IsInstanceValid(_agent))
        {
            return;
        }

        foreach (Agent agent in _agents.Values)
        {
            if (agent != null && IsInstanceValid(agent))
            {
                Node2D agentMarker = _agentMarkers[agent.GetUnitName()];
                agentMarker.GlobalRotation = agent.GlobalRotation + Mathf.Pi / 2.0f;

                // Update marker
                agentMarker.LookAt(agent.GlobalPosition);
                float distance = agentMarker.GlobalPosition.DistanceTo(agent.GlobalPosition);
                ((Label)agentMarker.GetNode("Text")).Text = agent.GetUnitName() + " " + distance;
            }
        }
    }
Exemple #23
0
    private void SpawnRandomScene()
    {
        PackedScene scene    = this.GetRandomScene();
        Node2D      instance = this.InstantiateScene(scene);

        VisibilityNotifier2D vn2d = instance.GetNode <VisibilityNotifier2D>("VisibilityNotifier2D");
        Node2D prevPiece          = this.LevelHolder.GetChild <Node2D>(this.LevelHolder.GetChildCount() - 2);

        if (null == prevPiece)
        {
            this.lastPosition.x = -vn2d.Position.x;
            this.lastPosition.y = instance.Position.y;
            this.previousVisibilityNotifier2D = vn2d;
        }

        this.currentPosition.x       = this.lastPosition.x + this.previousVisibilityNotifier2D.Position.x;
        this.currentPosition.y       = instance.Position.y;
        instance.Position            = this.currentPosition;
        this.lastPosition            = instance.Position;
        previousVisibilityNotifier2D = vn2d;
    }
Exemple #24
0
    private void OnBulletBodyEntered(object body)
    {
        if (body is Enemy enemy)
        {
            enemy.TakeDamage(damage);
        }

        GetNode <CollisionShape2D>(DamageAreaCollisionPath).SetDeferred("disabled", false);
        hitParticleRoot.GetNode <Particles2D>("HitParticle").Emitting = true;
        hitParticleRoot.GlobalPosition = GetNode <BulletComponent>("BulletComponent").GlobalPosition;

        if (hitParticleRoot.GetParent() != GetTree().CurrentScene)
        {
            GetTree().CurrentScene.AddChild(hitParticleRoot);
        }


        GetTree().CurrentScene.GetNode <CameraShake>("MainCam").Shake(180, 90, 80);
        gameRules.StartSlowMotion(0.1f, 0.5f, 0.8f);

        GetTree().CreateTimer(0.1f).Connect("timeout", this, "DeleteRocket");
    }
Exemple #25
0
    public override void _Ready()
    {
        base._Ready();

        if (Engine.EditorHint)
        {
            return;
        }

        SpawnRadius = GetNode <Area2D>("SpawnRadius");

        NavigationManager = GetNode <NavigationManager>("NavigationManager");

        GroundTiles = GetNode <TileMap>("Ground");
        NavTiles    = GetNode <TileMap>("NavigationManager/Map");
        OreTiles    = GetNode <TileMap>("Ore");
        WallTiles   = GetNode <TileMap>("Walls");

        Buildings      = GetNode <Node2D>("Buildings");
        GroundEntities = GetNode <Node2D>("GroundEntities");
        FlyingEntities = GetNode <Node2D>("FlyingEntities");
        Pipes          = GetNode <Node2D>("Pipes");

        Core   = Buildings.GetNode <Building>("Core");
        Player = GroundEntities.GetNode <Player>("Player");

        NormalControls      = GetNode <Control>("UI/NormalControls");
        BuildControls       = GetNode <Control>("UI/BuildMenuControls");
        WaveTimer           = GetNode <WaveTimer>("UI/WaveTimer");
        LaunchButton        = GetNode <Button>("UI/LaunchButton");
        FailureBox          = GetNode <FailureBox>("UI/FailureBox");
        FadeAnimationPlayer = GetNode <AnimationPlayer>("UI/ColorRect/AnimationPlayer");

        CallDeferred("Generate");

        WaveTimer.Wave = 1;
        WaveTimer.StartTimer(150);
    }
Exemple #26
0
        public void SetPath(Squad squad)
        {
            Team     = squad.Team;
            AllTiles = squad
                       .GetParent <Player>()
                       .GetParent()
                       .GetNode("Board")
                       .GetNode <Node2D>("TilesCollection");
            Path = new List <KeyValuePair <Tile, SoldierTenure> >();

            var teamString  = Team.ToString();
            var otherString = Team == PlayerTeam.White ? "Black" : "White";

            if (AllTiles == null)
            {
                return;
            }
            // starting line
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode(teamString + "Start") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode(teamString + "Road") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode(teamString + "Camp") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode(teamString + "Temple") as Tile,
                    SoldierTenure.Private));

            // middle line
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("Finish") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("MainRoad") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("Uruk") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("MainTemple") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("BridgeRoad") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("BridgeCity") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("BridgeCamp") as Tile,
                    SoldierTenure.Private));

            // after bridge
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode(teamString + "Temple2") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode(teamString + "Pyramid") as Tile,
                    SoldierTenure.Private));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("Battleground") as Tile,
                    SoldierTenure.Switch));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode(otherString + "Pyramid") as Tile,
                    SoldierTenure.Veteran));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode(otherString + "Temple2") as Tile,
                    SoldierTenure.Veteran));

            // finish line
            Path.Add(new KeyValuePair <Tile, SoldierTenure>(
                         AllTiles.GetNode("BridgeCamp") as Tile,
                         SoldierTenure.Veteran));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("BridgeCity") as Tile,
                    SoldierTenure.Veteran));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("BridgeRoad") as Tile,
                    SoldierTenure.Veteran));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("MainTemple") as Tile,
                    SoldierTenure.Veteran));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("Uruk") as Tile,
                    SoldierTenure.Veteran));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("MainRoad") as Tile,
                    SoldierTenure.Veteran));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("Finish") as Tile,
                    SoldierTenure.Veteran));
            Path.Add(
                new KeyValuePair <Tile, SoldierTenure>(
                    AllTiles.GetNode("Release") as Tile,
                    SoldierTenure.Veteran));
        }
Exemple #27
0
 public StagePortal GetPortal(string name)
 {
     return(portalsNode.GetNode <StagePortal>(name));
 }
Exemple #28
0
        public static GlobalGameVariables GetGlobalGameVariables(Node2D currentNode)
        {
            var globalVars = (GlobalGameVariables)currentNode.GetNode("/root/GlobalGameVariables");

            return(globalVars);
        }
        private void UpdateScore(int points)
        {
            var score = (Label)_scoreUi.GetNode("Score");

            score.Text = points.ToString();
        }
        public void UpdateHealthBar(int health)
        {
            var progressBar = (TextureProgress)_healthbar.GetNode("progress");

            progressBar.Value = health;
        }