void AcceptIncomingSpore(Spore incomingSpore, PlanetSettings.Allegiance sourceAllegiance) { if (myAllegiance.myAllegiance == sourceAllegiance || myAllegiance.myAllegiance == PlanetSettings.Allegiance.unclaimed) { incomingSpore.ChangeOwnership(this); AddSpore(incomingSpore); if (myAllegiance.myAllegiance == PlanetSettings.Allegiance.unclaimed) { myAllegiance.ChangeAllegiance(sourceAllegiance); } } else { if (mySpores.Count > 0) { var finalSporeIndex = mySpores.Count - 1; var defendingSpore = mySpores[finalSporeIndex]; mySpores.RemoveAt(finalSporeIndex); incomingSpore.AttackOtherSpore(defendingSpore); } else { myAllegiance.ChangeAllegiance(sourceAllegiance); } } }
void AllegianceChanged(PlanetSettings.Allegiance newAllegiance, PlanetSettings.Allegiance oldAllegiance) { scoreDictionary[oldAllegiance]--; scoreDictionary[newAllegiance]++; CalculateScore(); }
void Win(PlanetSettings.Allegiance winningAllegiance) { Debug.Log($"{winningAllegiance} wins!"); }
void AllegianceSet(PlanetSettings.Allegiance newAllegiance) { scoreDictionary[newAllegiance]++; }