Randomized who starts the fight #41

Merged
Jonathan merged 1 commits from randomise_fight_start into develop 4 weeks ago

@ -307,6 +307,11 @@ public partial class FightHappening : Node
HappeningData.enemyFighterFormation.SetFighterAtPosition(emptySlotIndex, fighter);
HappeningData.fighterTurn.AddAsLast(fighter);
}
if (GD.RandRange(0, 2) != 0) // 2/3 chance for vesna to start
Review

warum nicht 50/50?

warum nicht 50/50?
Jonathan commented 4 weeks ago
Review

Wirkt "fairer" für den Spieler

Wirkt "fairer" für den Spieler
{
HappeningData.fighterTurn.SpinBack();
}
}
private void ExecuteNextFighter()

@ -99,6 +99,23 @@ public class FighterTurn : IEnumerable<FightWorld.Fighter>
return false;
}
/// <summary>
/// Sets the current one back
/// This is an expensive operation, because the entire data structure needs to be circled
Review

Danke für den Hinweis. Passiert das aktuell nur beim Kampfstart oder könnte das potenziell auch wann anders benutzt werden? Und wenn ja, ab wann würde das zu Problemen führen?

Danke für den Hinweis. Passiert das aktuell nur beim Kampfstart oder könnte das potenziell auch wann anders benutzt werden? Und wenn ja, ab wann würde das zu Problemen führen?
Jonathan commented 4 weeks ago
Review

Passiert aktuell nur beim Kampfstart.
Probleme sollte das nie machen. Dafür müssten Tausende oder sogar Millionen Kämpfer aktiv sein, bevor man das performancetechnisch merkt.

Passiert aktuell nur beim Kampfstart. Probleme sollte das nie machen. Dafür müssten Tausende oder sogar Millionen Kämpfer aktiv sein, bevor man das performancetechnisch merkt.
/// </summary>
public void SpinBack()
{
if (_currentNode == null) return;
var node = _currentNode;
while (node.next != _currentNode)
{
node = node.next;
}
_currentNode = node;
}
public IEnumerator<FightWorld.Fighter> GetEnumerator()
{
if (_currentNode == null) return Enumerable.Empty<FightWorld.Fighter>().GetEnumerator();

Loading…
Cancel
Save