/// <summary> /// Attempts to get the pickup information of a pickup by name /// </summary> /// <param name="PickupName">The name of the pickup</param> /// <param name="Info">The return value</param> /// <returns></returns> public bool TryGetPickupInfo(string PickupName, out WorldPickupDefinition Info) { if (Pickups.TryGetValue(PickupName, out var info)) { Info = info; return(true); } Info = default; return(false); }
/// <summary> /// Removes an amount of pickups from the tracked ones in the World /// </summary> /// <param name="pickupName">The name of the pickup</param> /// <param name="amount">The amount to remove</param> public void RemovePickup(string pickupName, float amount = 1) { if (Pickups.TryGetValue(pickupName, out var info)) { if (amount > info.AmountTotal + info.AmountCollected) { amount = info.AmountTotal - info.AmountCollected; } Pickups[pickupName] = new WorldPickupDefinition(info.AmountCollected + amount, info.AmountTotal); } }
/// <summary> /// Adds a pickup to the total tracked pickups in the level. /// </summary> /// <param name="pickupName"></param> public void AddPickup(string pickupName, int amount = 1, int DefaultAmountCollected = 0, int DefaultAmountTotal = 1) { if (Pickups.TryGetValue(pickupName, out var info)) { Pickups[pickupName] = new WorldPickupDefinition(info.AmountCollected, info.AmountTotal + amount); } else { Pickups.Add(pickupName, new WorldPickupDefinition(DefaultAmountCollected, DefaultAmountTotal)); } }