public void Generate() { if (GoblinCap <= 0 || sGlobalAllocation >= GoblinCap) { return; } Goblin character = inactiveGoblins [inactiveGoblins.Count - 1]; if (character == null) { return; } var offset = CollisionRadius * 0.75f; var rot = GraphicsUtilities.PalarAdjust(VirtualZRotation); var pos = new CGPoint((float)Math.Cos(rot) * offset, (float)Math.Sin(rot) * offset); character.Position = new CGPoint(pos.X + Position.X, pos.Y + Position.Y); MultiplayerLayeredCharacterScene scene = CharacterScene; character.AddToScene(CharacterScene); character.ZPosition = -1f; character.FadeIn(0.5f); inactiveGoblins.Remove(character); ActiveGoblins.Add(character); sGlobalAllocation++; }
public void Recycle(Goblin goblin) { if (goblin == null) { throw new ArgumentNullException("goblin"); } goblin.Reset(); ActiveGoblins.Remove(goblin); inactiveGoblins.Add(goblin); sGlobalAllocation--; }