public override void Interact(BoltEntity boltEntity) { var medicPickup = MedicPickedUp.Create(GlobalTargets.OnlyServer, ReliabilityModes.ReliableOrdered); medicPickup.Player = boltEntity; medicPickup.Amount = state.MedicAmount; medicPickup.ObjectEntity = entity; medicPickup.Send(); }
/// <summary> /// Gets called whenever medic is picked-up. /// </summary> /// <param name="medicPickedUp"></param> public override void OnEvent(MedicPickedUp medicPickedUp) { //Get the player-state. var playerState = medicPickedUp.Player.GetState <IPlayer>(); //Get the medic-pickup-state. var health = medicPickedUp.ObjectEntity.GetState <IMedicPickup>(); //Calculate how much health the player can heal. var canHeal = 100 - (int)playerState.Health; //Cancel if medic-supply is empty or player health at max. if (health.MedicAmount == 0 || canHeal == 0) { return; } playerState.Health += canHeal; health.MedicAmount -= canHeal; }