Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 54bfc3c021 | |||
| 1c5d776a3a | |||
| c814d7606d | |||
| e1a61fb1e2 | |||
| a9446ec770 | |||
| 50b2c04cb4 |
@@ -5,6 +5,6 @@
|
|||||||
[node name="BabushkaSceneBootstrap" type="Node2D"]
|
[node name="BabushkaSceneBootstrap" type="Node2D"]
|
||||||
|
|
||||||
[node name="BabushkaSceneStartMenu" parent="." instance=ExtResource("1_15ton")]
|
[node name="BabushkaSceneStartMenu" parent="." instance=ExtResource("1_15ton")]
|
||||||
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_fight_world_room.tscn")
|
_sceneNamesToLoad = PackedStringArray("res://scenes/Babushka_scene_farm_outside_2d.tscn")
|
||||||
|
|
||||||
[node name="SceneParent" type="Node" parent="."]
|
[node name="SceneParent" type="Node" parent="."]
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
[ext_resource type="Resource" uid="uid://d1uuxp1lp4aro" path="res://resources/items/tomato_seed.tres" id="35_64mdn"]
|
[ext_resource type="Resource" uid="uid://d1uuxp1lp4aro" path="res://resources/items/tomato_seed.tres" id="35_64mdn"]
|
||||||
[ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"]
|
[ext_resource type="Texture2D" uid="uid://65e44yde224q" path="res://art/farm/Babushka_house_01.png" id="36_e5b7x"]
|
||||||
[ext_resource type="Resource" uid="uid://duq7tshxv6uhp" path="res://resources/items/beet_seed.tres" id="36_fv1t2"]
|
[ext_resource type="Resource" uid="uid://duq7tshxv6uhp" path="res://resources/items/beet_seed.tres" id="36_fv1t2"]
|
||||||
[ext_resource type="Texture2D" uid="uid://b4krfobwq3r3h" path="res://art/test_tomatos.png" id="36_l7ekk"]
|
[ext_resource type="Texture2D" uid="uid://cyyxqmphcrjj" path="res://art/farm/farming/farmobjekte/tomaten/tomaten_template.png" id="36_l7ekk"]
|
||||||
[ext_resource type="AudioStream" uid="uid://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
|
[ext_resource type="AudioStream" uid="uid://cfqg50am0swb7" path="res://audio/Music/Farming_90BPM_69Bars_Loop.wav" id="37_8ey8m"]
|
||||||
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="37_di1ed"]
|
[ext_resource type="AudioStream" uid="uid://dku1rq5cocisg" path="res://audio/Music/Farming_90BPM_69Bars.wav" id="37_di1ed"]
|
||||||
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"]
|
[ext_resource type="Shader" uid="uid://braevmqauoek7" path="res://shader/swaying_plant.gdshader" id="37_taxvr"]
|
||||||
|
|||||||
@@ -192,6 +192,8 @@ public partial class FightHappening : Node
|
|||||||
HappeningData.actionStaging = null;
|
HappeningData.actionStaging = null;
|
||||||
HappeningData.fightersEnterStaging = null;
|
HappeningData.fightersEnterStaging = null;
|
||||||
|
|
||||||
|
RemoveDeadFighters();
|
||||||
|
|
||||||
if (!FightWorld.Instance.allyFighters.IsAlive())
|
if (!FightWorld.Instance.allyFighters.IsAlive())
|
||||||
{
|
{
|
||||||
ChangeState(FightState.EnemyWin);
|
ChangeState(FightState.EnemyWin);
|
||||||
@@ -346,6 +348,17 @@ public partial class FightHappening : Node
|
|||||||
GD.Print("Vesna has been revived. This is for the current prototype only");
|
GD.Print("Vesna has been revived. This is for the current prototype only");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void RemoveDeadFighters()
|
||||||
|
{
|
||||||
|
foreach (var f in HappeningData.fighterTurn)
|
||||||
|
{
|
||||||
|
if (f.IsDead())
|
||||||
|
{
|
||||||
|
HappeningData.fighterTurn.Remove(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endregion // Game Logic
|
#endregion // Game Logic
|
||||||
|
|
||||||
#region Utility
|
#region Utility
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
using Babushka.scripts.CSharp.Common.Util;
|
using Babushka.scripts.CSharp.Common.Util;
|
||||||
using Godot;
|
using Godot;
|
||||||
|
|
||||||
@@ -15,15 +16,14 @@ public partial class FightRoomSceneSetup : Node
|
|||||||
{
|
{
|
||||||
var room = FightWorld.Instance.currentRoom!;
|
var room = FightWorld.Instance.currentRoom!;
|
||||||
|
|
||||||
var i = 0;
|
foreach (var (parent, group) in _enemyGroupSpawns.Zip(room.enemyGroups))
|
||||||
foreach (var availableParent in _enemyGroupSpawns.Shuffle())
|
|
||||||
{
|
{
|
||||||
var enemyGroup = room.enemyGroups[i];
|
if (group.AreAllDead())
|
||||||
|
continue;
|
||||||
|
|
||||||
var roamingEnemyGroup = _roamingEnemyGroupPrefab.Instantiate<RoamingEnemyGroup>();
|
var roamingEnemyGroup = _roamingEnemyGroupPrefab.Instantiate<RoamingEnemyGroup>();
|
||||||
roamingEnemyGroup.Initialize(enemyGroup, _fightSceneSwitcher);
|
roamingEnemyGroup.Initialize(group, _fightSceneSwitcher);
|
||||||
availableParent.AddChild(roamingEnemyGroup);
|
parent.AddChild(roamingEnemyGroup);
|
||||||
if (i >= room.enemyGroups.Count - 1) break;
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,9 +1,12 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace Babushka.scripts.CSharp.Common.Fight;
|
namespace Babushka.scripts.CSharp.Common.Fight;
|
||||||
|
|
||||||
public class FighterTurn
|
public class FighterTurn : IEnumerable<FightWorld.Fighter>
|
||||||
{
|
{
|
||||||
private class Node
|
private class Node
|
||||||
{
|
{
|
||||||
@@ -13,7 +16,8 @@ public class FighterTurn
|
|||||||
|
|
||||||
private Node? _currentNode;
|
private Node? _currentNode;
|
||||||
|
|
||||||
public FightWorld.Fighter Current => _currentNode?.fighter ?? throw new InvalidOperationException("No current fighter");
|
public FightWorld.Fighter Current =>
|
||||||
|
_currentNode?.fighter ?? throw new InvalidOperationException("No current fighter");
|
||||||
|
|
||||||
public void Next()
|
public void Next()
|
||||||
{
|
{
|
||||||
@@ -94,4 +98,26 @@ public class FighterTurn
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerator<FightWorld.Fighter> GetEnumerator()
|
||||||
|
{
|
||||||
|
if (_currentNode == null) return Enumerable.Empty<FightWorld.Fighter>().GetEnumerator();
|
||||||
|
|
||||||
|
var list = new List<FightWorld.Fighter>();
|
||||||
|
var n = _currentNode;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
list.Add(n.fighter);
|
||||||
|
if (n.next == _currentNode)
|
||||||
|
break;
|
||||||
|
n = n.next;
|
||||||
|
}
|
||||||
|
|
||||||
|
return list.GetEnumerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator IEnumerable.GetEnumerator()
|
||||||
|
{
|
||||||
|
return GetEnumerator();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user